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:
- Erstellen einer app in Pocket über ihre developer api. Dadurch erhält man den
consumer key
- Anfrage eines
request tokens
über die api mit demconsumer 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)
- Authentifizieren des
request tokens
über den Browser mit der URLhttps://getpocket.com/auth/authorize?request_token=DEIN_REQUEST_TOKEN&redirect_uri=http://www.google.com"
- Anfrage eines
access tokens
über die api mit demconsumer key
der Pocket App und dem authentifziertenrequest 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'])})