strohne / Facepager

Facepager was made for fetching public available data from YouTube, Twitter and other websites on the basis of APIs and webscraping.
https://github.com/strohne/Facepager/releases
510 stars 197 forks source link

Implement a simple scheduler #10

Closed dorvak closed 11 years ago

dorvak commented 11 years ago

The idea is a basic scheduling system for repetitive tasks (fetch XY every 10 minutes) wihtin the tool (task handling via crontab, autostarts etc. are propably overkill). Because the requests are saved in the info-window, the schedule could read in the request details and use this information.

strohne commented 11 years ago

Anderer Vorschlag: zuerst die Möglichkeit schaffen, Presets abzuspeichern und zu laden. Diese Presets können dann im zweiten Schritt getimed werden. Im Prinzip werden diese Daten ja schon in den Settings gespeichert, das könnte man vielleicht noch überarbeiten und ein entsprechendes UI schaffen.

dorvak commented 11 years ago

Grundlage ist mit den Presets ja geschaffen. Einzig die Selektion der Nodes, für die die Abfrage gestartet werden soll (und z. B. Kindelemente) fehlt noch (Vorschlag: Fenster zur Selektion der Knoten, bei der auch das Level gesteuert werden kann). Zudem müssen wir überlegen:

strohne commented 11 years ago

Ich glaube ich habe bislang viel zu kompliziert gedacht.

Das einfachste wäre es, die Funktion queryNodes in actions.py einfach in vorher festgelegten Intervallen bzw. nach Zeitplan aufzurufen. Man könnte das noch vereinfachen, weil die Abfrage der Knoten nur einmal gemacht werden muss - Zeile "todo=self.mainWindow.tree.selectedIndexesAndChildren(level)".

Ein eigenes Fenster zur Selektion der Knoten brauchen wir m.E. gar nicht, das haben wir doch schon?

dorvak commented 11 years ago

Stimmt, die queryNodes benutzt ja eh schon die selektierten Knoten und die Einstellung (eigenes Fenster brauche wir echt nicht, das kann man alles im Hauptfenster machen --> Timer einstellen --> Fertig

Dann fehlt eigentlich nur ein Timer, der die Jobs wiederholt (hier sollten wir vielleicht ein Limit nach unten einbauen, damit sich Jobs nicht in die Quere kommen, sowas wie 1min Abstand oder so ähnlich). Da kann man ja wie bei den Presets einfach einen eigene Button für machen. Am besten wäre eine "Add/Time current setup"-Funktion, weil man dann auch mehrere Time machen kann und nicht nur einen (hier sollte dann auch berücksichtigt werden, dass gleiche Jobs einfach hintereinander ausgeführt werden).

Edit: Schwieriger wird es, die jeweiligen Time-Paramter der API´s mit zu aktualisieren, das müsste als Teil des Schedulers werden (z. B. immer den aktuellen Tag einstellen etc.)