1
1
Fork
You've already forked petition.click
0
Ein Kurzlink-Dienst für das Online-Forum des Petitionsausschusses des Deutschen Bundestages https://petition.click
  • CSS 81.3%
  • Python 10.8%
  • Jinja 5.6%
  • SCSS 1.5%
  • Dockerfile 0.8%
Jan Willhaus 3e367bb804
All checks were successful
Docker Build / docker-build (push) Successful in 3m32s
Migrate to uv, add docker build
2025年10月07日 10:55:04 +02:00
.forgejo/workflows Migrate to uv, add docker build 2025年10月07日 10:55:04 +02:00
app Restructure repo; make nice 2025年07月12日 11:38:46 +02:00
css refine style 2025年07月03日 01:47:45 +02:00
static refine style 2025年07月03日 01:47:45 +02:00
.editorconfig Add index 2025年07月01日 14:42:24 +02:00
.gitignore Initial commit 2025年06月30日 19:35:22 +02:00
Dockerfile Migrate to uv, add docker build 2025年10月07日 10:55:04 +02:00
package-lock.json Add proper HTML templating, add 404 page 2025年07月02日 14:28:06 +02:00
package.json Add proper HTML templating, add 404 page 2025年07月02日 14:28:06 +02:00
pyproject.toml Migrate to uv, add docker build 2025年10月07日 10:55:04 +02:00
README.md Restructure repo; make nice 2025年07月12日 11:38:46 +02:00
uv.lock Migrate to uv, add docker build 2025年10月07日 10:55:04 +02:00

Petition.click 🪄

Petition.click ist ein Kurzlink-Dienst speziell für das Online-Forum des Petitionsausschusses des Deutschen Bundestages. Der Dienst macht es Menschen leichter, in der Offline-Welt für eine Petition zu werben und schnell und einfach auf die Online-Mitzeichnung verweisen zu können.

Dazu wird die Petitions Id-Nr. verwendet: an die Adresse des Dienstes angehängt – z.B. petition.click/180180 – ergibt sich ein einprägsamer Kurzlink, den man problemlos auch mündlich weitergeben kann. Ein solcher Link muss nicht explizit angelegt werden (wie man es von bit.ly oder anderen Kurzlink-Diensten kennt), sondern ist ab dem ersten Aufruf sofort verfügbar (wie das funktioniert – siehe Technische Details).

Technische Details

Die Webseite des Petitions-Forum vergibt zwar eine eindeutige URL für jede Petition, diese ist aber unhandlich und enthält zudem das Datum der Erstellung der Petition. Das muss ich also kennen, um zur Petition verlinken zu können:

https://epetitionen.bundestag.de/petitionen/_2025/_04/_09/Petition_180180.nc.html

(削除) Natürlich (削除ここまで) Leider stellt das Petitions-Forum selbst keine Kurzlinks oder gar eine API zu Verfügung, die diesen Rückschluss allein aus der Id-Nr. erlauben würde (obwohl das eigentlich naheliegend ist). Petition.click scraped daher die Suchfunktion des Petitions-Forums um von der Id-Nr. auf die Detailseite einer Petition aufzulösen.

Beim ersten Aufruf eines Petition.click-Links wird diese Auflösung im Hintegrund durchgeführt und die Verknüpfung in einem simplen Redis-Cache abgelegt, sodass jeder Link nur einmal aufgelöst werden muss. Jeder weitere Aufruf wird dann aus dem Cache bedient.

Side-Note: Das Petitions-Forum bedient sich einer rudimentären Anti-Scraping-Methodik mittels Proof-of-Work. Diese ist in app.session:populate_cookies implementiert.