ao3statscraper


Nameao3statscraper JSON
Version 0.5.1 PyPI version JSON
download
home_pageNone
SummaryScrape stats from your AO3 stats page.
upload_time2025-11-09 18:45:13
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords ao3 web stats matplotlib
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AO3StatScraper

`AO3StatScraper` is a small python package that provides command line scripts to
fetch your AO3 (*Archive Of Our Own*) statistics to store and display them. See
the [Examples section](#examples) for some screenshots of what it can do for
you.

## Installation

`AO3StatScraper` is available on
[PyPI](https://pypi.org/project/ao3statscraper/), and can obtained any regular
way you'd install a python package, e.g. using `pip`, `conda`, etc.

For example, using `pip`:

**On Linux/OSX**:

- First, open a terminal/the "Terminal" app. It will wait for you to type in a
command and hit `Enter` to execute it.
- Type in the following command and execute it by hitting `Enter`:
```
python3 -m pip install ao3statscraper
```
- That's it, you've installed `ao3statscraper`!


**On Windows**:

- make sure you [install Python](https://www.python.org/downloads/windows/) first.
- open the `command prompt`. It will wait for you to type in a command and hit
  `Enter` to execute it. (PowerShell works too, but you'll need to [enable
  execution of scripts](https://stackoverflow.com/questions/64633727/how-to-fix-running-scripts-is-disabled-on-this-system).)
- Type in the following command:
```
py -m pip install ao3statscraper
```
- That's it, you've installed `ao3statscraper`!


Alternately, the source code is available on
[gitlab](https://gitlab.com/athenaslilowl1/AO3StatScraper).
You can install a local version by cloning the repository using git.
On OSX and Linux, you can use (again in the terminal)

```
git clone https://gitlab.com/athenaslilowl1/AO3StatScraper.git    # get the git repository
cd AO3StatScraper                                                 # go into the directory
python3 -m pip install .                                          # install package
```


On Windows (make sure you [install Python](https://www.python.org/downloads/windows/) and
[git](https://git-scm.com/downloads) first), the equivalent steps in the
`command prompt` are:

```
git clone https://gitlab.com/athenaslilowl1/AO3StatScraper.git
cd AO3StatScraper
py -m pip install .
```







## User Guide

The commands listed below can be executed by typing them into a terminal
(Linux), the Terminal app (OSX), or the `command prompt` (Windows) and hitting
`Enter` after you've installed them following the steps above.


### TL;DR

- Run the `ao3get` command to display the differences to the last time you stored
your stats with AO3StatScraper.
- When running for the very first time, use `ao3get --all` instead.
- Run `ao3plot` to plot the results.



### Overview: How It Works

`AO3StatScraper` simply downloads your AO3 stats page (pretty much the same as
opening it in your browser and hitting `Save this page...`) and then extract the
stats from that html content. To be able to access your stats, you need to log
in to AO3, which is why `AO3StatScraper` will ask you for your username and
password.


By default `AO3StatScraper` (i.e. the script `ao3get`) will store your current
stats as a snapshot. This includes both your total user statistics as well as
your individual work statistics. The data is written in
the csv (Comma Separated Values) format, so plenty of other software and
packages should be able to read it in easily. Your total user statistics are
stored in a separate file from your work statistics.



### Getting Started

The main use case for `AO3StatScraper` is to fetch and display your current AO3
statistics using scripts provided by `AO3StatScraper`. Currently, there are 5
scripts:

- `ao3get` : The main script to fetch and display your AO3 stats.
- `ao3plot`: Plots the stats stored with `ao3get`.
- `ao3diff`: Show the difference in stats compared to an earlier date.
- `ao3_hits_to_kudos`: List all your works in ascending order of their
  hits/kudos ratio
- `ao3_purge`: Deletes saved stats such that there is a minimum time between the
  remaining ones

The scripts are discussed in more detail further below.


**IMPORTANT**: Before you can run the other scripts, you first need to configure
`AO3StatScraper`. This is done by calling `ao3get`. It will launch the
configuration dialogue automatically if it hasn't been configured yet. You can
always re-configure it by invoking `ao3get -c`.

**IMPORTANT**: By default, `ao3get` will try and display the difference in your
stats. This can't be done if there are no previous stats stored. For that reason,
the very first time you call `ao3get`, use `ao3get --all` instead.





### `ao3get`

This is the main script to fetch and store your AO3 stats. There are several
running modes. When in doubt, invoke `ao3get --help` to see the available
options.

The default running mode is `--diff`.

- `--all`: Fetch and store current stats from AO3 into a snapshot, and display
  stats for all works.
- `--repeat`: Don't fetch new stats, but show the changes between the last two
  stored stats snapshots.
- `--diff`: Fetch and store current stats from AO3 into a snapshot, and display
  only stats for works that have changed since the last snapshot. If there were
  no changes in work stats, it will display only the user's total stats.
- `--config`: Run the configuration dialogue and exit.
- `--remove-last`: Deletes the last snapshot `ao3get` stored and exits. May come
  in handy if you're nervously re-downloading your stats every minute.
- `--no-write`: This flag modifies the behaviour for `--all` and `--diff`
  running modes. While current stats are fetched from AO3, they won't be written
  into a snapshot.
- `--file`: Instead of using the `ao3get` mechanism to log in to AO3 and
  download your current stats, read them in from a file. This can be handy when
  AO3 ups their defenses and prevents `ao3get` to log in, which may happen on
  occasion. This option allows you to manually save your stats page (simply
  open your AO3 stats page in a browser and use `ctrl`/`cmd` + s in your
  browser and save the page wherever) and read that file in with `ao3get` by
  providing the path to wherever it was you saved it.

The list above does not cover all the available options. Please use
`ao3get --help` to see all the available options.

Using `ao3get` requires you to log in to your AO3 account. You can either type
in your username and password each time you invoke it, or you can store it with
`AO3StatScraper`, locked behind a master password. There are no restrictions on
how sophisticated your master password needs to be, so if you can't be
inconvenienced, you can even leave it empty. Alternately, you can opt out of
using a master password at all, although this is not encouraged. But it would
allow you to e.g. set up an automated way to fetch your stats at regular times.


### `ao3plot`

`ao3plot` will display some simple graphs based on the stored snapshots. It
never stores snapshots itself, you will need to do that using `ao3get`.

By default, `ao3plot` will ask you to select which work you would like to see
graphs of stats for. You can also select to plot your total user statistics.

Alternately, you can skip that dialogue by using the following flags:

- `-u`: Show total user statistics.
- `-i <ID>`: Show the statistics for the work with AO3 ID `<ID>`. For example,
  if your work is under the link `https://archiveofourown.org/works/24280306`,
  the `<ID>` would be `24280306`.
- `<number>`: Show the statistics for the work with index `<number>`, where the
  index refers to the number of the work as shown in the selection dialogue
  when running `ao3plot` without any command line arguments.
  You can also provide a list of indices as a comma separated list of integers,
  e.g. `ao3plot 3,4,5` to plot indices 3, 4, and 5 in the same plot.

It is possible that the stats graphs aren't displayed nicely on all screens. If
that is the case for you, you may want to try the `--no-prettify` flag to obtain
a bare-bones plot without any prettifications. It may not look as nice, but at
least you should be able to see the data.

Finally, you can also try the `--diff` option to additionally display the
*difference* in stats over time in the plot as opposed to their actual value. By
default, it shows the weekly differences between the stats.



### `ao3diff`

Fetch (but do not store) your AO3 stats and compare them to stats from the past.
It never stores snapshots itself, you will need to do that using `ao3get`.
By default, it will compare to your stats from a week ago, but you can also
select a day, a week, a month, or a year back using the `-d`, `-w`, `-m`, or `-y`
flag, respectively. Alternately, you can specify a date in the `YYYY-MM-DD`
format.



### `ao3_hits_to_kudos`

This script just reads in the last stored snapshot and prints out all your works
in ascending order of their hits/kudos ratio.



### `ao3_purge`

In case you find yourself in a situation where you feel you have stored way too
many snapshots, `ao3_purge` offers you the option to delete stats snapshots such
that there is some minimal time between them. By default, this frequency is set
to 12h. You can provide the frequency you like using the `--frequency` flag.




## Examples

This is example output what `ao3get` will show you when you run it:

![default running mode, diff](webdata/ao3get-diff.png)

It will only list the works that have changes since you last checked (i.e. stored
a snapshot).

But you can also view all your works:

![show all works](webdata/ao3get-all.png)


Plotting the total user statistics with `ao3plot` will show you something like
this:

![plotting user stats](webdata/plot-user.png)


Running `ao3plot` for a specific work will give you 2 plots:

![plotting work, Figure 1](webdata/plot-work1.png)
![plotting work, Figure 2](webdata/plot-work2.png)





# Having issues?

Please let me know by raising an issue on
[gitlab](https://gitlab.com/athenaslilowl1/AO3StatScraper/-/issues) or reach out
to me on bluesky: [@athenaslilowl](https://bsky.app/profile/athenaslilowl.bsky.social).

I'm using Linux exclusively, so there may be issues on other operating systems.
Testers and devs on OSX and windows are also very welcome to let me know what's
working and what needs fixing.


## Troubleshooting on Windows


### `ImportError: DLL load failed while importing _cext: The specified module could not be found.`


```
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\USER\testVenv\Lib\site-packages\matplotlib\__init__.py", line 263, in <module>
    _check_versions()
  File "C:\Users\USER\testVenv\Lib\site-packages\matplotlib\__init__.py", line 257, in _check_versions
    module = importlib.import_module(modname)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\USER\AppData\Local\Programs\Python\Python312\Lib\importlib\__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\USER\testVenv\Lib\site-packages\kiwisolver\__init__.py", line 8, in <module>
    from ._cext import (
ImportError: DLL load failed while importing _cext: The specified module could not be found.
```


The error appears to be related to the matplotlib installation. Try installing
`msvc-runtime` **system wide, i.e. outside of a virtual environment**:


```
py -m pip install msvc-runtime
```





# Roadmap and Contributing

Help and contributions to maintain and extend this tool are very welcome!

Some ideas what might be added in the future include
- Writing/reading of file formats other than csv.
- Maybe add a GUI for CLI-averse users. This tool was always intended to be a
  command line tool on my end. Having never programmed a GUI in my life, I don't
  intend to start now. However, if anybody is willing to pack this up in a nice
  simple portable GUI, you are very welcome and encouraged to do so! I'll gladly
  add it to the repository.

I'm using Linux exclusively, so there may be issues on other operating systems.
Testers and devs on OSX and windows are also very welcome to let me know what's
working and what needs fixing.



# Acknowledgements

Parts of the AO3 fetching mechanism is lifted from the [AO3 API
package](https://github.com/ArmindoFlores/ao3_api).


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ao3statscraper",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "AO3, web, stats, matplotlib",
    "author": null,
    "author_email": "AthenasLilOwl <athenaslilowl@protonmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/8d/45/66981a9b4ba9bd1cf6665aba0195c2571200e751446aed87d2ac043b9ea5/ao3statscraper-0.5.1.tar.gz",
    "platform": null,
    "description": "# AO3StatScraper\n\n`AO3StatScraper` is a small python package that provides command line scripts to\nfetch your AO3 (*Archive Of Our Own*) statistics to store and display them. See\nthe [Examples section](#examples) for some screenshots of what it can do for\nyou.\n\n## Installation\n\n`AO3StatScraper` is available on\n[PyPI](https://pypi.org/project/ao3statscraper/), and can obtained any regular\nway you'd install a python package, e.g. using `pip`, `conda`, etc.\n\nFor example, using `pip`:\n\n**On Linux/OSX**:\n\n- First, open a terminal/the \"Terminal\" app. It will wait for you to type in a\ncommand and hit `Enter` to execute it.\n- Type in the following command and execute it by hitting `Enter`:\n```\npython3 -m pip install ao3statscraper\n```\n- That's it, you've installed `ao3statscraper`!\n\n\n**On Windows**:\n\n- make sure you [install Python](https://www.python.org/downloads/windows/) first.\n- open the `command prompt`. It will wait for you to type in a command and hit\n  `Enter` to execute it. (PowerShell works too, but you'll need to [enable\n  execution of scripts](https://stackoverflow.com/questions/64633727/how-to-fix-running-scripts-is-disabled-on-this-system).)\n- Type in the following command:\n```\npy -m pip install ao3statscraper\n```\n- That's it, you've installed `ao3statscraper`!\n\n\nAlternately, the source code is available on\n[gitlab](https://gitlab.com/athenaslilowl1/AO3StatScraper).\nYou can install a local version by cloning the repository using git.\nOn OSX and Linux, you can use (again in the terminal)\n\n```\ngit clone https://gitlab.com/athenaslilowl1/AO3StatScraper.git    # get the git repository\ncd AO3StatScraper                                                 # go into the directory\npython3 -m pip install .                                          # install package\n```\n\n\nOn Windows (make sure you [install Python](https://www.python.org/downloads/windows/) and\n[git](https://git-scm.com/downloads) first), the equivalent steps in the\n`command prompt` are:\n\n```\ngit clone https://gitlab.com/athenaslilowl1/AO3StatScraper.git\ncd AO3StatScraper\npy -m pip install .\n```\n\n\n\n\n\n\n\n## User Guide\n\nThe commands listed below can be executed by typing them into a terminal\n(Linux), the Terminal app (OSX), or the `command prompt` (Windows) and hitting\n`Enter` after you've installed them following the steps above.\n\n\n### TL;DR\n\n- Run the `ao3get` command to display the differences to the last time you stored\nyour stats with AO3StatScraper.\n- When running for the very first time, use `ao3get --all` instead.\n- Run `ao3plot` to plot the results.\n\n\n\n### Overview: How It Works\n\n`AO3StatScraper` simply downloads your AO3 stats page (pretty much the same as\nopening it in your browser and hitting `Save this page...`) and then extract the\nstats from that html content. To be able to access your stats, you need to log\nin to AO3, which is why `AO3StatScraper` will ask you for your username and\npassword.\n\n\nBy default `AO3StatScraper` (i.e. the script `ao3get`) will store your current\nstats as a snapshot. This includes both your total user statistics as well as\nyour individual work statistics. The data is written in\nthe csv (Comma Separated Values) format, so plenty of other software and\npackages should be able to read it in easily. Your total user statistics are\nstored in a separate file from your work statistics.\n\n\n\n### Getting Started\n\nThe main use case for `AO3StatScraper` is to fetch and display your current AO3\nstatistics using scripts provided by `AO3StatScraper`. Currently, there are 5\nscripts:\n\n- `ao3get` : The main script to fetch and display your AO3 stats.\n- `ao3plot`: Plots the stats stored with `ao3get`.\n- `ao3diff`: Show the difference in stats compared to an earlier date.\n- `ao3_hits_to_kudos`: List all your works in ascending order of their\n  hits/kudos ratio\n- `ao3_purge`: Deletes saved stats such that there is a minimum time between the\n  remaining ones\n\nThe scripts are discussed in more detail further below.\n\n\n**IMPORTANT**: Before you can run the other scripts, you first need to configure\n`AO3StatScraper`. This is done by calling `ao3get`. It will launch the\nconfiguration dialogue automatically if it hasn't been configured yet. You can\nalways re-configure it by invoking `ao3get -c`.\n\n**IMPORTANT**: By default, `ao3get` will try and display the difference in your\nstats. This can't be done if there are no previous stats stored. For that reason,\nthe very first time you call `ao3get`, use `ao3get --all` instead.\n\n\n\n\n\n### `ao3get`\n\nThis is the main script to fetch and store your AO3 stats. There are several\nrunning modes. When in doubt, invoke `ao3get --help` to see the available\noptions.\n\nThe default running mode is `--diff`.\n\n- `--all`: Fetch and store current stats from AO3 into a snapshot, and display\n  stats for all works.\n- `--repeat`: Don't fetch new stats, but show the changes between the last two\n  stored stats snapshots.\n- `--diff`: Fetch and store current stats from AO3 into a snapshot, and display\n  only stats for works that have changed since the last snapshot. If there were\n  no changes in work stats, it will display only the user's total stats.\n- `--config`: Run the configuration dialogue and exit.\n- `--remove-last`: Deletes the last snapshot `ao3get` stored and exits. May come\n  in handy if you're nervously re-downloading your stats every minute.\n- `--no-write`: This flag modifies the behaviour for `--all` and `--diff`\n  running modes. While current stats are fetched from AO3, they won't be written\n  into a snapshot.\n- `--file`: Instead of using the `ao3get` mechanism to log in to AO3 and\n  download your current stats, read them in from a file. This can be handy when\n  AO3 ups their defenses and prevents `ao3get` to log in, which may happen on\n  occasion. This option allows you to manually save your stats page (simply\n  open your AO3 stats page in a browser and use `ctrl`/`cmd` + s in your\n  browser and save the page wherever) and read that file in with `ao3get` by\n  providing the path to wherever it was you saved it.\n\nThe list above does not cover all the available options. Please use\n`ao3get --help` to see all the available options.\n\nUsing `ao3get` requires you to log in to your AO3 account. You can either type\nin your username and password each time you invoke it, or you can store it with\n`AO3StatScraper`, locked behind a master password. There are no restrictions on\nhow sophisticated your master password needs to be, so if you can't be\ninconvenienced, you can even leave it empty. Alternately, you can opt out of\nusing a master password at all, although this is not encouraged. But it would\nallow you to e.g. set up an automated way to fetch your stats at regular times.\n\n\n### `ao3plot`\n\n`ao3plot` will display some simple graphs based on the stored snapshots. It\nnever stores snapshots itself, you will need to do that using `ao3get`.\n\nBy default, `ao3plot` will ask you to select which work you would like to see\ngraphs of stats for. You can also select to plot your total user statistics.\n\nAlternately, you can skip that dialogue by using the following flags:\n\n- `-u`: Show total user statistics.\n- `-i <ID>`: Show the statistics for the work with AO3 ID `<ID>`. For example,\n  if your work is under the link `https://archiveofourown.org/works/24280306`,\n  the `<ID>` would be `24280306`.\n- `<number>`: Show the statistics for the work with index `<number>`, where the\n  index refers to the number of the work as shown in the selection dialogue\n  when running `ao3plot` without any command line arguments.\n  You can also provide a list of indices as a comma separated list of integers,\n  e.g. `ao3plot 3,4,5` to plot indices 3, 4, and 5 in the same plot.\n\nIt is possible that the stats graphs aren't displayed nicely on all screens. If\nthat is the case for you, you may want to try the `--no-prettify` flag to obtain\na bare-bones plot without any prettifications. It may not look as nice, but at\nleast you should be able to see the data.\n\nFinally, you can also try the `--diff` option to additionally display the\n*difference* in stats over time in the plot as opposed to their actual value. By\ndefault, it shows the weekly differences between the stats.\n\n\n\n### `ao3diff`\n\nFetch (but do not store) your AO3 stats and compare them to stats from the past.\nIt never stores snapshots itself, you will need to do that using `ao3get`.\nBy default, it will compare to your stats from a week ago, but you can also\nselect a day, a week, a month, or a year back using the `-d`, `-w`, `-m`, or `-y`\nflag, respectively. Alternately, you can specify a date in the `YYYY-MM-DD`\nformat.\n\n\n\n### `ao3_hits_to_kudos`\n\nThis script just reads in the last stored snapshot and prints out all your works\nin ascending order of their hits/kudos ratio.\n\n\n\n### `ao3_purge`\n\nIn case you find yourself in a situation where you feel you have stored way too\nmany snapshots, `ao3_purge` offers you the option to delete stats snapshots such\nthat there is some minimal time between them. By default, this frequency is set\nto 12h. You can provide the frequency you like using the `--frequency` flag.\n\n\n\n\n## Examples\n\nThis is example output what `ao3get` will show you when you run it:\n\n![default running mode, diff](webdata/ao3get-diff.png)\n\nIt will only list the works that have changes since you last checked (i.e. stored\na snapshot).\n\nBut you can also view all your works:\n\n![show all works](webdata/ao3get-all.png)\n\n\nPlotting the total user statistics with `ao3plot` will show you something like\nthis:\n\n![plotting user stats](webdata/plot-user.png)\n\n\nRunning `ao3plot` for a specific work will give you 2 plots:\n\n![plotting work, Figure 1](webdata/plot-work1.png)\n![plotting work, Figure 2](webdata/plot-work2.png)\n\n\n\n\n\n# Having issues?\n\nPlease let me know by raising an issue on\n[gitlab](https://gitlab.com/athenaslilowl1/AO3StatScraper/-/issues) or reach out\nto me on bluesky: [@athenaslilowl](https://bsky.app/profile/athenaslilowl.bsky.social).\n\nI'm using Linux exclusively, so there may be issues on other operating systems.\nTesters and devs on OSX and windows are also very welcome to let me know what's\nworking and what needs fixing.\n\n\n## Troubleshooting on Windows\n\n\n### `ImportError: DLL load failed while importing _cext: The specified module could not be found.`\n\n\n```\nTraceback (most recent call last):\n  File \"<stdin>\", line 1, in <module>\n  File \"C:\\Users\\USER\\testVenv\\Lib\\site-packages\\matplotlib\\__init__.py\", line 263, in <module>\n    _check_versions()\n  File \"C:\\Users\\USER\\testVenv\\Lib\\site-packages\\matplotlib\\__init__.py\", line 257, in _check_versions\n    module = importlib.import_module(modname)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"C:\\Users\\USER\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\importlib\\__init__.py\", line 90, in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"C:\\Users\\USER\\testVenv\\Lib\\site-packages\\kiwisolver\\__init__.py\", line 8, in <module>\n    from ._cext import (\nImportError: DLL load failed while importing _cext: The specified module could not be found.\n```\n\n\nThe error appears to be related to the matplotlib installation. Try installing\n`msvc-runtime` **system wide, i.e. outside of a virtual environment**:\n\n\n```\npy -m pip install msvc-runtime\n```\n\n\n\n\n\n# Roadmap and Contributing\n\nHelp and contributions to maintain and extend this tool are very welcome!\n\nSome ideas what might be added in the future include\n- Writing/reading of file formats other than csv.\n- Maybe add a GUI for CLI-averse users. This tool was always intended to be a\n  command line tool on my end. Having never programmed a GUI in my life, I don't\n  intend to start now. However, if anybody is willing to pack this up in a nice\n  simple portable GUI, you are very welcome and encouraged to do so! I'll gladly\n  add it to the repository.\n\nI'm using Linux exclusively, so there may be issues on other operating systems.\nTesters and devs on OSX and windows are also very welcome to let me know what's\nworking and what needs fixing.\n\n\n\n# Acknowledgements\n\nParts of the AO3 fetching mechanism is lifted from the [AO3 API\npackage](https://github.com/ArmindoFlores/ao3_api).\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Scrape stats from your AO3 stats page.",
    "version": "0.5.1",
    "project_urls": {
        "Homepage": "https://gitlab.com/athenaslilowl1/AO3StatScraper"
    },
    "split_keywords": [
        "ao3",
        " web",
        " stats",
        " matplotlib"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "525bed35bdf449d069d4ffa4f73d92498969da42b517ce8767c987562725a271",
                "md5": "ecdf14d0579aaf9819ee8826c1c67b3e",
                "sha256": "852899c92434b13ad7727574e2834409ddf1f071c248cd61a6a59cf6025600ac"
            },
            "downloads": -1,
            "filename": "ao3statscraper-0.5.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ecdf14d0579aaf9819ee8826c1c67b3e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 44758,
            "upload_time": "2025-11-09T18:45:12",
            "upload_time_iso_8601": "2025-11-09T18:45:12.529955Z",
            "url": "https://files.pythonhosted.org/packages/52/5b/ed35bdf449d069d4ffa4f73d92498969da42b517ce8767c987562725a271/ao3statscraper-0.5.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8d4566981a9b4ba9bd1cf6665aba0195c2571200e751446aed87d2ac043b9ea5",
                "md5": "ff8bd24b7f3ea66a2b35a800f5a5e531",
                "sha256": "d97216cfc754cd5321fda502a8c6a4fe3aeb3527b6a3387d466a5099efff026f"
            },
            "downloads": -1,
            "filename": "ao3statscraper-0.5.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ff8bd24b7f3ea66a2b35a800f5a5e531",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 44333,
            "upload_time": "2025-11-09T18:45:13",
            "upload_time_iso_8601": "2025-11-09T18:45:13.924734Z",
            "url": "https://files.pythonhosted.org/packages/8d/45/66981a9b4ba9bd1cf6665aba0195c2571200e751446aed87d2ac043b9ea5/ao3statscraper-0.5.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-09 18:45:13",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "athenaslilowl1",
    "gitlab_project": "AO3StatScraper",
    "lcname": "ao3statscraper"
}
        
Elapsed time: 3.33190s