Skip to main content

Tools for the Pocket reading app https://app.getpocket.com/

Project description

PyPI version build codecov Total alerts Language grade: Python

Pocket Stats

A tool to analyze your Pocket reading list.

Deployed at https://pocket-stats.nlbao.page .

Features

Word Cloud

word_cloud

Article Count timeseries

article_count

Word Count distribution

Stacked histograms word_count

Reading Speed & Reading Time

Stacked histograms reading_time

Top Domains

Stacked bar charts. top_domains

Language & Favorite

language_favorite

Installation

Prerequisites:

You can install using Pip:

    pip3 install pocket-stats

Or clone this repo:

    git clone https://github.com/nlbao/pocket_stats.git
    cd pocket_stats
    make setup

Run web app locally

    # Set necessary environment variables:
    export POCKET_STATS_CONSUMER_KEY='<your_pocket_consumer_key>'
    export POCKET_STATS_ACCESS_TOKEN='<your_pocket_access_token>'
       
    # Start the webserver
    gunicorn --workers 2 'pocket_stats.app:server' -b :8050 --reload
    
    # You will see something like this:
    # Dash is running on http://127.0.0.1:8050/

Go to http://127.0.0.1:8050/ from your web browser.

Data querying

    from pocket_stats.data import <your_function_names>
  • Count word in all the titles:
    >>> count_words_in_title(data)
    Counter({'-': 5, '|': 5, 'python': 3, 'problem': 2, 'strace': 1, 'wow': 1, 'much': 1, 'syscall': 1, 'martin': 1, 'heinz': 1, 'personal': 1, 'website': 1, '&': 1, 'blog': 1, 'call': 1, 'programmer,': 1})
  • Number of words in each article:
    >>> get_word_counts(data)
    [2207, 0, 5449, 4721, 3245, 805, 1849, 4087, 0, 538, 5054, 21, 866, 266, 1146, 213, 823, 3551, 787, 0]
  • Reading time of each article:
    >>> get_reading_time(data)
    [9.80888888888889, 24.217777777777776, 20.982222222222223, 14.422222222222222, 3.577777777777778, 8.217777777777778, 18.164444444444445, 2.391111111111111, 22.462222222222223, 0.09333333333333334, 3.848888888888889, 1.1822222222222223, 5.093333333333334, 0.9466666666666667, 3.6577777777777776, 15.782222222222222, 3.497777777777778]
  • Number of newly added articles per day:
    >>> get_added_time_series(data) 
                All articles
    2020-07-04             5
    2020-07-03             8
    2020-07-02             2
    2020-07-01             5
  • Number of newly archived articles per day:
    >>> get_archived_time_series(data)
                Archived articles
    2020-07-04             2
  • Number of articles per domain:
    >>> get_domain_counts(data)
    Counter({'kalzumeus.com': 3, 'bogleheads.org': 2, 'github.io': 2, 'brendangregg.com': 1, 'martinheinz.dev': 1, 'awealthofcommonsense.com': 1, 'jlcollinsnh.com': 1, 'callan.com': 1, 'engineerseekingfire.com': 1, 'arxiv.org': 1, 'popularmechanics.com': 1, 'dolpages.com': 1, 'economist.com': 1, 'romantomjak.com': 1, 'digitalocean.com': 1, 'deepnote.com': 1})
  • Number of articles per language:
    >>> get_language_counts(data)
    Counter({'en': 17, 'unknown': 3})
  • Number of favorite articles and its percent:
    >>> get_favorite_count(data)
    {'count': 2, 'percent': 0.1}

Testing

    make check

Deployment

You can deploy the app.py as a webserver.

Example: https://dash.plotly.com/deployment.

Contribute

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Authors

License

MIT License - see the LICENSE.md file for details.

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pocket_stats-0.3.1.tar.gz (11.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page