get weekly links from pocket with python

Start mit chatGPT

Eigentlich wollte ich nur sehen, wie gut chatGPT programmieren kann und stellte die Anforderung schreibe mir ein python Script, das die letzten 10 Links von Pocket zusammen mit Tags ausliest. Das Ergebnis war folgendes Skript:

import requests
import json

# Hier setzen wir unsere Pocket-API-Zugangsdaten
consumer_key = 'DEIN_CONSUMER_KEY'
access_token = 'DEIN_ACCESS_TOKEN'

# URL für den Abruf von Artikeln aus Pocket API
url = 'https://getpocket.com/v3/get'

# Parameter für den Abruf der letzten 10 Artikel
params = {
    'consumer_key': consumer_key,
    'access_token': access_token,
    'count': 10,
    'detailType': 'complete',
    'sort': 'newest'
}

# Senden des API-Aufrufs und Verarbeiten der Antwort
response = requests.post(url, json=params)
data = json.loads(response.text)

# Ausgabe der Tags und URLs für die letzten 10 Artikel
for item in data['list'].values():
    print(item['given_title'])
    print(item['given_url'])
    for tag in item['tags']:
        print(tag)
    print('\n')

Ermitteln des consumer keys und des access tokens für die Pocket api

Damit Daten abgerufen werden können benötigt man einen consumer key und einen access key. Die Details sind in dem Artikel Getting your reading history out of Pocket using Python ausführlich beschrieben. Die Kurzfassung ist:

  1. Erstellen einer app in Pocket über ihre developer api. Dadurch erhält man den consumer key
  2. Anfrage eines request tokens über die api mit dem consumer key der Pocket App
import requests
import json

# Hier setzen wir unsere Pocket-API-Zugangsdaten
consumer_key = 'DEIN_CONSUMER_KEY'

# URL für den Abruf von Artikeln aus Pocket API
url = 'https://getpocket.com/v3/oauth/request'

# Parameter für den Abruf des request tokens
params = {"consumer_key":consumer_key,"redirect_uri":"http://www.google.com"}

# Senden des API-Aufrufs und Verarbeiten der Antwort
response = requests.post(url, json=params)

print (response.text)
  1. Authentifizieren des request tokens über den Browser mit der URL https://getpocket.com/auth/authorize?request_token=DEIN_REQUEST_TOKEN&redirect_uri=http://www.google.com"
  2. Anfrage eines access tokens über die api mit dem consumer key der Pocket App und dem authentifzierten request token
import requests
import json

# Hier setzen wir unsere Pocket-API-Zugangsdaten
consumer_key = 'DEIN_CONSUMER_KEY'
request_token = 'DEIN_REQUEST_TOKEN'

# URL für den Abruf von Artikeln aus Pocket API
url = 'https://getpocket.com/v3/oauth/authorize'

# Parameter für des access tokens
params = {"consumer_key":consumer_key,"code":request_token}

# Senden des API-Aufrufs und Verarbeiten der Antwort
response = requests.post(url, json=params)

print (response.text)

das fertige Skript

Das fertige Skript liest die letzten 10 Links über die Pocket API aus, filtert diese nach dem Erstelldatum der letzten 7 Tage und formatiert sie als markdown Liste.

import requests
import json
import time
from datetime import datetime

# Hier setzen wir unsere Pocket-API-Zugangsdaten
consumer_key = 'DEIN_CONSUMER_KEY'
access_token = 'DEIN_ACCESS_TOKEN'

# URL für den Abruf von Artikeln aus Pocket API
url = 'https://getpocket.com/v3/get'

# Parameter für den Abruf der letzten 10 Artikel
params = {
    'consumer_key': consumer_key,
    'access_token': access_token,
    'count': 10,
    'detailType': 'complete',
    'sort': 'newest'
}

# Senden des API-Aufrufs und Verarbeiten der Antwort
response = requests.post(url, json=params)
data = json.loads(response.text)
#print (data)

# Ausgabe der Tags und URLs für die letzte Woche
for item in data['list'].values():
    if float(item['time_added']) >= time.mktime(datetime.now().timetuple()) - 60*60*24*7:
        print('- [%(title)s](%(url)s)' %{'title':item['resolved_title'],'url':item['given_url']})
        if 'tags' in item:
            print('   - tags: %(tags)s' %{'tags':', '.join(item['tags'])})

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit deinem WordPress.com-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

%d Bloggern gefällt das: