![workflowy api workflowy api](https://www.automatetheplanet.com/wp-content/uploads/2014/12/workflowy_star_pages-300x164.png)
![workflowy api workflowy api](https://www.automatetheplanet.com/wp-content/uploads/2014/12/workflowy_website-1024x576.png)
The meat of the logic after logging in and searching is here: def _mark_results_with_tag(cls, tag: str):Įspecially interesting is that you are sending keys rather than replacing the text in an element. Lambda driver: driver.find_element_by_css_selector(css_selector)) To do so: def _wait_for_element_to_appear(cls, css_selector): To get around this we need to instruct Selenium to wait until the element is visible.
#Workflowy api code
WorkflowyScheduler.schedule_items_for_today()Īs is the nature of web pages and Selenium elements I need to interact with won’t necessarily be rendered when my code gets to them (the page could still be loading, waiting for an ajax response, etc). Lambda driver: _fill_text_box(cls, css_selector: str, text_to_input: _get_todays_date_tag(cls) -> str: Text_box.send_keys(" " + _click_button(cls, css_selector: _wait_for_element_to_appear(cls, css_selector): Text_box = element.find_element_by_css_selector("div.content") I’ve currently got it setup to run as a scheduled task when I log in to my machine.įrom import Keysįrom import WebDriverWaitīrowser = schedule_items_for_today(cls):Ĭls._click_button("div.header-bar a.button-top-right")Ĭls._wait_for_element_to_appear("#id_username")Ĭls._fill_text_box("#id_username", settings.workflowy_username)Ĭls._fill_text_box("#id_password", _search(cls, search_term: str):Ĭls._wait_for_element_to_appear("#searchBox")Ĭls._fill_text_box("#searchBox", _mark_results_with_tag(cls, tag: str):įor element in _elements_by_css_selector(""): Then to find everything I need to do today I search for #Focus.įrom here all I have to do is schedule the script to run.
![workflowy api workflowy api](https://raw.githubusercontent.com/ryanpcmcquen/workflowyCodeFormatter/master/after_WCF__1.jpg)
![workflowy api workflowy api](https://raw.githubusercontent.com/palesz/workflowy-agenda-js/master/workflowy-agenda-screenshot.png)
However let’s think about this, really all I need is something that does the scheduling on my behalf automatically. This does however create a sense of detachment and “which tool do I do my notes in” frustration that slows down actually doing the work. So for the longest time I’ve used tools like NirvanaHQ and Todoist as my “primary” apps (both awesome btw) with Workflowy when I want to brainstorm a larger issue. I would love nothing more than to use Workflowy as my primary to do list, the way it allows you to decompose items and brainstorm is second to none, however it does not have some functionality with is essential in a task management app (mainly as it’s not part of the tool’s intention) namely: Excellent, well thought out keyboard shortcuts.The ability to star pages and searches for quick access later on.Note taking against individual bullet points.The ability to “focus in” on a single bullet point, hiding it’s sibling and parent items just showing you itself and the child items.What differentiates it from, say, doing the same in a Word document is: Workflowy is one of my favourite personal management tools it’s an outlining tool that allows you to create large hierarchies of bullet points.