https://github.com/capjamesg/cinnamon

A social reader built with Python Flask.

https://github.com/capjamesg/cinnamon

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary

Keywords

flask indieweb microsub microsub-server python social-reader

Keywords from Contributors

projection archival transformers interactive sequences generic ecosystem-modeling autograding hacking shellcodes
Last synced: 5 months ago · JSON representation

Repository

A social reader built with Python Flask.

Basic Info
  • Host: GitHub
  • Owner: capjamesg
  • License: mit-0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 5.91 MB
Statistics
  • Stars: 12
  • Watchers: 4
  • Forks: 1
  • Open Issues: 2
  • Releases: 0
Topics
flask indieweb microsub microsub-server python social-reader
Created over 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.md

Cinnamon Social Reader

This repository contains the code that powers my personal Microsub social reader called Cinnamon.

Microsub is an IndieWeb specification currently in development that separates the tasks of processing feeds and presenting feeds so that servers and feed readers can be developed independently but work together.

The Microsub server currently supports:

  • Creating channels
  • Updating channel names
  • Changing the order of channels in a list
  • Deleting channels
  • Subscribing to a feed
  • Unsubscribing from a feed
  • Marking entries in a feed view as read
  • Creating a post via Micropub
  • Reacting to posts via Micropub
  • Among other features

This project is in active development. The entire Microsub specification is not yet incorporated into this project.

Screenshots

Desktop

Microsub desktop feed

Mobile

Microsub mobile feed

Getting Started

You can install and configure this Microsub server using Docker or manually.

Docker Setup

To set up this project with Docker, first install Docker on your local machine.

Next, run the following command:

docker build -t microsub .

This will build the microsub image using the Dockerfile in the root directory of this project.

Next, copy the config_example.py file into the config.py file and change the values to match your server:

cp config_example.py config.py

The Dockerfile automates the project setup process.

Next, run:

docker run microsub

This will run the microsub server on port 5000.

Manual Setup

To use this Microsub server for yourself, please run the following command:

pip3 install -r requirements.txt

This command will install the dependencies you need to run the Microsub server.

Next, copy the config_example.py file into the config.py file and change the values to match your server:

cp config_example.py config.py

Next, you need to set up the database for the server. You can do this using the following command:

python3 seed.py

Now that you have set up the database, you are ready to run the Microsub server.

Execute this command to run the server:

python3 wsgi.py

File Definitions

Here is the structure of this project:

── Dockerfile
├── LICENSE.md
├── README.md
├── actions # implementations of the actions defined in the Microsub specification
│   ├── change_to_json.py
│   ├── channels.py
│   ├── following.py
│   ├── preview.py
│   ├── react.py
│   ├── search.py
│   ├── timeline.py
│   └── user_ops.py
├── authentication # functions to handle authentication and authorization
│   ├── auth.py
│   └── check_token.py
├── client # views used to read and manage feeds
│   └── client_views.py
├── config.py # configuration file required for the project to run
├── feeds # code to transform three different types of feed into a jf2 object, consumed by the server
│   ├── hfeed.py
│   ├── json_feed.py
│   ├── read_later.py
│   └── xml_feed.py
├── legacy # old code not currently in use
│   └── dates.py
├── logs
├── main.py # the main microsub server that responds to queries at /microsub
├── poll_feeds.py
├── requirements.txt
├── requirements_dev.txt
├── seed.py
├── server # code that powers feed management and the back-end server
│   ├── server_views.py
│   └── websub.py
├── static # all static files used in the project
│   ├── css
│   │   └── styles.css
│   ├── emojis.json
│   ├── favicon.ico
│   ├── icons
│   ├── images
│   │   └── wood.avif
│   ├── js
│   │   ├── editor.js # js to load the post editor form
│   │   └── reader.js # js to enhance reading capabilities, including reactions
│   ├── manifest.json
│   └── robots.txt
├── templates # all the HTML templates for the project
│   ├── 404.html
│   ├── auth.html
│   ├── base.html
│   ├── client # HTML used by the client
│   │   ├── discover.html
│   │   ├── feed_item.html
│   │   ├── preview.html
│   │   ├── read_article.html
│   │   ├── reader.html
│   │   ├── search.html
│   │   └── settings.html
│   ├── index.html
│   ├── server # HTML used by the server management client
│   │   ├── dashboard.html
│   │   └── following.html
│   ├── setup.html
│   └── show_error.html
├── tox.ini
└── wsgi.py

This tree was generated using the following command:

tree -I '*.pyc|*.png|*.svg|*.log|__*'

License

This project is licensed under an MIT 0 license.

Acknowledgements

The author of this project would like to thank the Feather open source icon set for creating an open repository of icons. This project uses a few icons from Feather in the mobile view.

This project uses the "Complete list of github markdown emoji markup" Gist for its emoji autocomplete dictionary.

Maintainers

Owner

  • Name: James
  • Login: capjamesg
  • Kind: user
  • Location: Scotland
  • Company: @Roboflow

from words, wonder.

GitHub Events

Total
Last Year

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 156
  • Total Committers: 3
  • Avg Commits per committer: 52.0
  • Development Distribution Score (DDS): 0.109
Past Year
  • Commits: 8
  • Committers: 1
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
capjamesg j****g@j****g 139
dependabot[bot] 4****] 16
p182 3****2 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 4
  • Total pull requests: 30
  • Average time to close issues: 8 months
  • Average time to close pull requests: 13 days
  • Total issue authors: 1
  • Total pull request authors: 3
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.03
  • Merged pull requests: 27
  • Bot issues: 0
  • Bot pull requests: 19
Past Year
  • Issues: 0
  • Pull requests: 4
  • Average time to close issues: N/A
  • Average time to close pull requests: about 5 hours
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
  • capjamesg (4)
Pull Request Authors
  • dependabot[bot] (28)
  • capjamesg (10)
  • p182 (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (28)

Dependencies

requirements.txt pypi
  • Flask ==2.0.2
  • Jinja2 ==3.0.3
  • MarkupSafe ==2.0.1
  • Werkzeug ==2.0.2
  • beautifulsoup4 ==4.10.0
  • blinker ==1.4
  • bs4 ==0.0.1
  • certifi ==2021.10.8
  • charset-normalizer ==2.0.10
  • click ==8.0.3
  • feedparser ==6.0.8
  • gunicorn ==20.1.0
  • html5lib ==1.1
  • idna ==3.3
  • indieweb-utils ==0.1.2
  • itsdangerous ==2.0.1
  • mf2py ==1.1.2
  • python-dateutil ==2.8.2
  • pytz ==2021.3
  • requests ==2.27.1
  • sentry-sdk ==1.5.1
  • sgmllib3k ==1.0.0
  • six ==1.16.0
  • soupsieve ==2.3.1
  • urllib3 ==1.26.7
  • webencodings ==0.5.1
requirements_dev.txt pypi
  • black ==21.12b0 development
  • flake8 ==4.0.1 development
  • isort ==5.10.1 development
  • mypy ==0.931 development
  • pytest ==6.2.5 development
  • pytest-pythonpath ==0.7.3 development
  • responses ==0.17.0 development
  • tox ==3.24.5 development
  • types-dataclasses ==0.6.4 development
  • types-requests ==2.27.3 development
  • typing-extensions ==4.0.1 development
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v2 composite
  • github/codeql-action/analyze v1 composite
  • github/codeql-action/autobuild v1 composite
  • github/codeql-action/init v1 composite
Dockerfile docker
  • python 3.9.0 build