newslynx-sc-reddit¶
Installation¶
Production¶
To install newslynx-sc-reddit
for an active installation of
newslynx-core
, clone it and copy into ~/.newslynx/sous-chefs
$ git clone https://github.com/newslynx/newslynx-sc-reddit.git
$ mv newslynx-sc-reddit/ ~/.newslynx/sous-chefs/
Now install it within the same virtual environment as newslynx
:
$ cd ~/.newslynx/sous-chefs/newslynx-sc-reddit/
$ pip install .
... and if you’re running newslynx
as sudo
$ cd ~/.newslynx/sous-chefs/newslynx-sc-reddit/
$ sudo pip install .
Finally, run newslynx sc-sync
to newslynx-sc-reddit
‘s Sous Chefs
for all organizations.
$ newslynx sc-sync
Development¶
If you want to modify / add Sous Chefs to newslynx-sc-reddit
, instal
it in it’s own virtual environment.
NOTE Will install a fresh version of newslynx
via pip
.
$ mkvirtualenv newslynx-sc-reddit
$ git clone https://github.com/newslynx/newslynx-sc-reddit.git
$ cd newslynx-sc-reddit
$ pip install --editable .
You should now be able to run newslynx-sc-reddit
‘s Sous Chefs in
development mode
% newslynx sc newslynx_sc_reddit/say_my_name.yaml --myname='Brian Abelson'
Documentation¶
Documentation for newslynx-sc-reddit
is hosted on Read The
Docs.
It’s generated via the following steps
- converts this file (
README.md
) into a ReStructured Text file, saving it to docs/index.rst - runs
newslynx sc-docs newslynx_sc_reddit -f rst
to generate documentation for all the Sous Chefs innewslynx-sc-reddit
and saves the output to docs/sous-chefs.rst - Builds Sphinx Documentation from these files.
Contributing¶
See the contributing guidelines.
What’s in this module ?¶
- README.md
- This file
- VERSION
newslynx-sc-reddit
‘s source-of-truth version.
- requirements.txt
newslynx-sc-reddit
‘s python dependencies.
- MANIFEST.in
- Specifications for which files to include in the PyPI distribution.
- See the docs on this here.
- setup.py
- Specification’s for building
newslynx-sc-reddit
‘s PyPI distribution.
- Specification’s for building
- .travis.yml
- Configurations for Travis Continuous Integration
- You must activate this project on travis-ci.org for this to run on subsequent updates.
- Makefile
- Helpers for managing
newslynx-sc-reddit
. - Includes:
make clean
:- Cleans out cruft from this directory.
make install
:- Installs
newslynx-sc-reddit
. Assumes that you’re in a virtual environment.
- Installs
make all_tests
:- Runs the tests.
make readme
- Converts this file to
.rst
, including a table of contents, and saves it to docs/index.rst
- Converts this file to
make sous_chef_docs
- Programmtically generates Sous Chef
documentation
by running
newslynx sc-docs newslynx_sc_reddit/ --format=rst > docs/sous-chefs.rst
.
- Programmtically generates Sous Chef
documentation
by running
make all_docs
:- Builds the sphinx docs for
newslynx-sc-reddit
by running the above two commands.
- Builds the sphinx docs for
make view_docs
- Serves documentation at localhost:8000
make register
:- Registers
newslynx-sc-reddit
on PyPI.
- Registers
make distribute
:- Publishes a new version of
newslynx-sc-reddit
to PyPI.
- Publishes a new version of
- Helpers for managing
- CONTRIBUTING.md
- newslynx_sc_reddit
newslynx-sc-reddit
‘s source code and Sous Chef configuration files.
- docs
- Sphnix documentation for
newslynx-sc-reddit
- Sphnix documentation for
- tests
nose
tests fornewslynx-sc-reddit
Contents¶
Sous Chefs¶
newslynx-sc-reddit provides access to the following Sous Chefs
Reddit Search Content Item Links to Event¶
- Extracts linked events from a Reddit API query.
- This Sous Chef runs the python module
newslynx_sc_reddit.SearchContentItemLinks
. - API Slug:
reddit-search-content-item-links-to-event
API Usage¶
Add this Sous Chef to your authenticated org
$ newslynx api sous-chefs create -d=newslynx_sc_reddit/reddit_search_content_item_links_to_event.yaml
Create a Recipe with this Sous Chef with command line options.
$ newslynx api recipes create sous_chef=reddit-search-content-item-links-to-event **options
Alternatively pass in a recipe file.
$ newslynx api recipes create sous_chef=reddit-search-content-item-links-to-event --data=recipe.yaml
Save the outputted id
of this recipe, and execute it via the API.
NOTE This will place the recipe in a task queue.
$ newslynx api recipes cook id=<id>
Alternatively, run the Recipe, passing in arbitrary runtime options, and
stream it’s output: NOTE Will not execute the SousChef’s load
method.
$ newslynx api recipes cook id=<id> --passthrough **options
Development¶
Pass runtime options to reddit-search-content-item-links-to-event
and stream output. NOTE Will not execute the SousChef’s load
method.
$ newslynx sc newslynx_sc_reddit/reddit_search_content_item_links_to_event.yaml option=value1
Alternatively pass in a recipe file
$ newslynx sc newslynx_sc_reddit/reddit_search_content_item_links_to_event.yaml --recipe=recipe.yaml
Options¶
In addition to default recipe options,
reddit-search-content-item-links-to-event
also accepts the following
must_link
- Only create an event if there is a link to an existing content item.
- Required
- Should be rendered with a
checkbox-single
form. - Choose from:
False
- Accepts inputs of type:
boolean
- Defaults to
False
event_status
- Set the status of the resulting events. Choose from pending and approved. Defaults to pending.
- Should be rendered with a
select
form. - Choose from:
pending
approved
- Accepts inputs of type:
string
- Defaults to
pending
set_event_title
- Set’s the title of the resulting events. This can be a python format string which has access to all of an event’s top-level keys: IE: “Content from {authors} at {created}.”
- Should be rendered with a
text
form. - Accepts inputs of type:
string
- Defaults to
None
set_event_description
- Set’s the description of the output events. This can be a python format string which has access to all of an event’s top-level keys: IE: “{title}.”
- Should be rendered with a
paragraph
form. - Accepts inputs of type:
string
- Defaults to
None
set_event_tag_ids
- A list of Tag IDs or slugs to automatically apply to events created by this recipe.
- Should be rendered with a
checkbox
form. - Choose from:
- Accepts inputs of type:
string
numeric
- Defaults to
[]
set_event_content_items
- A list of Content Item IDs and Titles to automatically apply to events created by this Recipe.
- Should be rendered with a
search
form. - Choose from:
- Accepts inputs of type:
json
- Defaults to
[]
Reddit Search to Event¶
- Extracts events from a Reddit API query.
- This Sous Chef runs the python module
newslynx_sc_reddit.Search
. - API Slug:
reddit-search-to-event
API Usage¶
Add this Sous Chef to your authenticated org
$ newslynx api sous-chefs create -d=newslynx_sc_reddit/reddit_search_to_event.yaml
Create a Recipe with this Sous Chef with command line options.
$ newslynx api recipes create sous_chef=reddit-search-to-event **options
Alternatively pass in a recipe file.
$ newslynx api recipes create sous_chef=reddit-search-to-event --data=recipe.yaml
Save the outputted id
of this recipe, and execute it via the API.
NOTE This will place the recipe in a task queue.
$ newslynx api recipes cook id=<id>
Alternatively, run the Recipe, passing in arbitrary runtime options, and
stream it’s output: NOTE Will not execute the SousChef’s load
method.
$ newslynx api recipes cook id=<id> --passthrough **options
Development¶
Pass runtime options to reddit-search-to-event
and stream output.
NOTE Will not execute the SousChef’s load
method.
$ newslynx sc newslynx_sc_reddit/reddit_search_to_event.yaml option=value1
Alternatively pass in a recipe file
$ newslynx sc newslynx_sc_reddit/reddit_search_to_event.yaml --recipe=recipe.yaml
Options¶
In addition to default recipe options, reddit-search-to-event
also
accepts the following
query
- The query to the Reddit API to return the initial batch of events.
- Required
- Should be rendered with a
text
form. - Accepts inputs of type:
string
- More details on this option can be found here
sort
- The sort order to return from the Reddit API.
- Required
- Should be rendered with a
select
form. - Choose from:
new
- Accepts inputs of type:
string
- Defaults to
new
- More details on this option can be found here
subreddit
- The name of the subreddit to filter results by.
- Required
- Should be rendered with a
text
form. - Accepts inputs of type:
string
- Defaults to
None
must_link
- Only create an event if there is a link to an existing content item.
- Required
- Should be rendered with a
checkbox-single
form. - Choose from:
False
- Accepts inputs of type:
boolean
- Defaults to
False
event_status
- Set the status of the resulting events. Choose from pending and approved. Defaults to pending.
- Should be rendered with a
select
form. - Choose from:
pending
approved
- Accepts inputs of type:
string
- Defaults to
pending
set_event_title
- Set’s the title of the resulting events. This can be a python format string which has access to all of an event’s top-level keys: IE: “Content from {authors} at {created}.”
- Should be rendered with a
text
form. - Accepts inputs of type:
string
- Defaults to
None
set_event_description
- Set’s the description of the output events. This can be a python format string which has access to all of an event’s top-level keys: IE: “{title}.”
- Should be rendered with a
paragraph
form. - Accepts inputs of type:
string
- Defaults to
None
set_event_tag_ids
- A list of Tag IDs or slugs to automatically apply to events created by this recipe.
- Should be rendered with a
checkbox
form. - Choose from:
- Accepts inputs of type:
string
numeric
- Defaults to
[]
set_event_content_items
- A list of Content Item IDs and Titles to automatically apply to events created by this Recipe.
- Should be rendered with a
search
form. - Choose from:
- Accepts inputs of type:
json
- Defaults to
[]