Skip to main content

'GoatCounter' analytics for the CLI, written in Python

Project description

GoatPie

Build

"GoatCounter" analytics for the CLI, written in Python - get it?

Screenshot

Installation

It's available from PyPi using pip:

pip install goatpie

Getting started

Using this library is straightforward.

Commandline

Pretty much self-explanatory - otherwise, --help is your friend:

$ goatpie --help
Usage: goatpie [OPTIONS] URL

  Provides 'Goatcounter' statistics for URL

Options:
  -u, --update            Forces update of local database
  -l, --limit INTEGER     Shows visits & pageviews for the last XY days. Default: 14
  -b, --bar-colors TEXT   Defines two bar colors. Default: 'blue,magenta'
  -t, --text-colors TEXT  Defines three text colors. Default: 'blue,white,cyan'
  --version               Show the version and exit.
  --help                  Show this message and exit.

Package

The underlying module may also be used directly:

from goatpie import GoatPie

# Initialize it
obj = GoatPie(url, token)

# Optionally with `data_dir` (SQLite database, config, etc)
obj = GoatPie(url, token, data_dir)

# Update database
# (1) Last update not before one hour (in seconds)
obj.update(3600)

# (2) Force database update
obj.update(0)

# Get pageviews as `pandas.DataFrame` (last seven days)
print(obj.get_pageviews(7))

#           Day  Pageviews
# 0  2022-08-28          1
# 1  2022-08-27         13
# 2  2022-08-26         20
# 3  2022-08-25         35
# 4  2022-08-24         84
# 5  2022-08-23         64
# 6  2022-08-22         23

Configuration

Besides CLI options (see goatpie --help) you may also configure various options inside ~/.config/goatpie/config.ini like so:

[DEFAULT]
interval = 3600
step = 100
bar_colors = blue,magenta
text_colors = blue,white,cyan

[stats.example.com]
interval = 0                    # force updates
step = 1000                     # more visitors
bar_colors = yellow,red         # hotter colors
text_colors = black,blue,black  # better suited for light screens

When first connecting to a 'GoatCounter' domain (such as stats.example.com), you are asked to store your token, in which case your configuration might look like this:

[DEFAULT]
interval = 3600

[stats.example.com]
interval = 0  # force updates
token = my-s3cr3t-t0k3n

[stats.another-example.com]
interval = 1800  # half hour
token = my-0th3r-s3cr3t-t0k3n

Note: Section headers are named after the GoatCounter API endpoints you are using, NOT the pages you are tracking!

Roadmap

  • Add tests
  • Add more tests
  • Add logger
  • Config file
  • Explain configuration

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

goatpie-0.4.0.tar.gz (119.2 kB view details)

Uploaded Source

Built Distribution

goatpie-0.4.0-py3-none-any.whl (25.0 kB view details)

Uploaded Python 3

File details

Details for the file goatpie-0.4.0.tar.gz.

File metadata

  • Download URL: goatpie-0.4.0.tar.gz
  • Upload date:
  • Size: 119.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.1

File hashes

Hashes for goatpie-0.4.0.tar.gz
Algorithm Hash digest
SHA256 14080bb9e317158da1de227364bd3414ae14bf42f6f4650737070d804eb1d8d5
MD5 a7b48b578168c270711ba41efc42adff
BLAKE2b-256 f8c9b923604d77edcac0e288aee0b8d92986993eaefc31437f1d9f127f84aef7

See more details on using hashes here.

File details

Details for the file goatpie-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: goatpie-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 25.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.1

File hashes

Hashes for goatpie-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a169a7a5144681fec209d6e36b0675e1d131cd0cdac86d75b151ead375538b6
MD5 2d2e068edd8dc3a9c95af80a5108800c
BLAKE2b-256 414aeb207f967b5385626ebda8533acdafdc3f355944e2896f7cbcacba25c69a

See more details on using hashes here.

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