AnkiWeb
- Rating
- 0 (👍 0 · 👎 0)
- Updated
- 2025-06-22
- Anki versions
- 25.06~
- Description language
- en
AnkiWeb addon 1438427983
Generates and updates Anki flashcards from Patreon patron data via API to help creators memorize patrons' names, icons, notes, and support amounts.
Open on AnkiWeb GitHub Forum topic Ask about alternatives
stale
| Min Anki | Max Anki | Updated |
|---|---|---|
| 2.1.1 | 25.06+ | 2025-06-22 |
Loading…
Translates text with DeepL in Anki, but is no longer needed because the original add-on has been fixed; requires a DeepL API key.
Synchronizes Youdao and Eudic dictionary word lists into Anki cards, though it may be broken and was only tested on Windows with Youdao.
Adds a ChatGPT, Google Bard, and Bing Chat sidebar for free AI-assisted Anki reviews with auto-sent prompts, but is broken and no longer updated.
Generates useful acronyms from word lists and synonyms to memorize content for exams, letting users load more and copy chosen acronyms into flashcards.
Creates symbolic links or Windows junctions named after actual add-ons in a separate Anki2 folder, helping developers identify otherwise numeric add-on folders.
Provides an AI sidebar for reviewing Anki cards, supporting ChatGPT, Gemini, Copilot, Claude, Perplexity, DeepSeek, Grok, and image generation, with auto-send prompts and cookie-based logins.
Interact with the Patreon API via OAuth.
Get the egg from PyPI, typically via pip:
pip install patreon
or
echo "patreon" >> requirements.txt
pip install -r requirements.txt
Make sure that, however you install patreon,
you install its dependencies as well
Visit the OAuth Documentation Page while logged in as a Patreon creator to register your client.
This will provide you with a client_id and a client_secret.
e.g., in a Flask route
import patreon
from flask import request
...
client_id = None # Replace with your data
client_secret = None # Replace with your data
creator_id = None # Replace with your data
@app.route('/oauth/redirect')
def oauth_redirect():
oauth_client = patreon.OAuth(client_id, client_secret)
tokens = oauth_client.get_tokens(request.args.get('code'), '/oauth/redirect')
access_token = tokens['access_token']
api_client = patreon.API(access_token)
user_response = api_client.get_identity()
user = user_response.data()
memberships = user.relationship('memberships')
membership = memberships[0] if memberships and len(memberships) > 0 else None
# pass user and membership to your view to render as needed
You'll notice that the user_response does not return raw JSON data.
Instead, it returns a JSON:API resource object,
to simplify traversing the normalized graph data that the Patreon API returns.
Some available methods are:
response.data() to get the main resourceresponse.data().attribute('full_name') to get the full_name attribute from the response dataresponse.data().relationship('campaign').attribute('pledge_sum') to get the pledge_sum attribute from the campaign resource related to the main response dataresponse.find_resource_by_type_and_id('user', '123') to find an arbitrary resourcepatreon.API instances have methods for interacting with the API based on the routes described in the docs.
All methods include includes and fields parameters.
ie:
get_identity(includes=None, fields=None)List methods take page_size and cursor methods as well, ie:
get_campaigns(page_size, cursor=None, includes=None, fields=None)The includes and fields arguments to these methods specify
the related resources
and the resource attributes
you want returned by our API, as per the JSON:API specification.
The lists of valid includes and fields arguments are provided on patreon.schemas.
For instance, if you wanted to request the total amount a patron has ever paid to your campaign,
which is not included by default, you could do:
api_client = patreon.API(patron_access_token)
patron_response = api_client.get_identity(None, {
'membership': patreon.schemas.member.Attributes.currently_entitled_amount_cents
})
patreon.API also has a utility method extract_cursor
which you can use to extract pagination links
from our json:api response documents:
api_client = patreon.API(creator_access_token)
campaign_id = api_client.get_campaigns().data()[0].id()
memberships = []
cursor = None
while True:
members_response = api_client.get_campaigns_by_id_members(campaign_id, 10, cursor=cursor)
members += members_response.data()
cursor = api_client.extract_cursor(members_response)
if not cursor:
break
names_and_membershipss = [{
'full_name': member.relationship('user').attribute('full_name'),
'amount_cents': member.attribute('amount_cents'),
} for member in members]
python -m venv venv && source venv/bin/activate && python setup.py develop
virtualenv venv && source venv/bin/activate && pip install -e . && pip install -r dev-requirements.txt
git checkout -b my-branch-namepython setup.py testgit push