https://github.com/dschep/helper
ABANDONED - HELPeR is an open source, self hosted, easy to hack clone of IFTTT
https://github.com/dschep/helper
abandonware
Last synced: 11 months ago
JSON representation
ABANDONED - HELPeR is an open source, self hosted, easy to hack clone of IFTTT
- Host: GitHub
- URL: https://github.com/dschep/helper
- Owner: dschep
- License: gpl-3.0
- Created: 2015-06-12T18:13:06.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2022-01-06T22:23:03.000Z (about 4 years ago)
- Last Synced: 2025-03-18T02:11:44.857Z (11 months ago)
- Topics: abandonware
- Language: Python
- Homepage:
- Size: 165 KB
- Stars: 25
- Watchers: 4
- Forks: 10
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HELPeR -- THIS PROJECT IS ABANDONED
HELPeR is a personal IFTTT clone because who wants to give a corporation access
to *ALL* your online accounts?!
## Screenshots



## Agents
HELPeR consists of Agents. Agents should be a python module. For the purposes
of this README we'll be discussing a hypothetical Agent called `foobar`.
### Agent Configs
If an agent needs it, a config can be created for it in the DB.
### Agent Config Views
An agent can define a views if it as a config in `foobar.view`. They will be
loaded at `/agent_config//`. They must be
specified in `foobar.ACTION_CONFIG_KEYS`
ex: `/agent/1/Foo` will call `foobar.views.Foo.as_view(request, agent_config)`
The main purpose of this is to allow for building of extra view for things like
oauth. See `helper.agents.facebook.views.FBLogin` for an example
## Tasks
Agents' tasks live in `foobar.tasks`. These should be celery tasks. Tasks are
either a 'cause' and output a list of events (flat dicts) or an
'effect' which accepts a list of events do do with as it pleases.
Cause & effect tasks are paired as TaskPair objects. Each TaskPair has 2 tasks
defined, one cause and one effect, and a set options for both.
### Task execution
Tasks get called with a union of the a AgentConfig options and the relevant
options in TaskPair (eg: cause tasks get called with cause_options).
### Task views
Tasks can have a view at `foobar.views.TaskView`. They are dispatched through a
TaskPair. POSTs going to the cause view and GETs going to the effect view. Both
require a secret in the task's options to match the URL segment with the
secret.
ex: POST to `/task/6/SECRET` calls TaskPair(id=6)'s cause view
This is best combined with the Event model to accumulate events and a scheduled
cause task that loads events from the DB.