All Projects → samueltardieu → AusweisBot

samueltardieu / AusweisBot

Licence: AGPL-3.0 license
Telegram bot to generate self-authorizations for moving around during covid-19 pandemic in France

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to AusweisBot

api2pdf.php
PHP client library for the Api2Pdf.com REST API - Convert HTML to PDF, URL to PDF, Office Docs to PDF, Merge PDFs, HTML to Image, URL to Image, HTML to Docx, HTML to Xlsx, PDF to HTML, Thumbnail preview of office files
Stars: ✭ 42 (+223.08%)
Mutual labels:  qrcode, pdf-generation
gn-api-sdk-node
SDK em NodeJS integrada a API Gerencianet. Esta SDK está preparada para integração à API Pix e API Boletos da Gerencianet, que lhe permite realizar o gerenciamento de cobranças Pix com QR Code e Pix Copia e Cola, boleto/Bolix, carnê, cartão de crédito e muito mais.
Stars: ✭ 33 (+153.85%)
Mutual labels:  qrcode
Send2KindleBot
Send to Kindle Telegram Bot
Stars: ✭ 111 (+753.85%)
Mutual labels:  telegram-bot
VideoPlayerBot
An Telegram Bot By @AsmSafone To Stream Videos in Telegram Voice Chat. This is Also The Source Code of The Bot Which is Being Used In Our Support Group! ❤️
Stars: ✭ 187 (+1338.46%)
Mutual labels:  telegram-bot
nim-telegram-bot
Nim Telegram Bot.
Stars: ✭ 18 (+38.46%)
Mutual labels:  telegram-bot
spigot-tg-bridge
Connect Telegram chats and Minecraft servers seamlessly
Stars: ✭ 27 (+107.69%)
Mutual labels:  telegram-bot
gas-SphygmoBot
A human "Heartbeat" checker hosted on Telegram.
Stars: ✭ 20 (+53.85%)
Mutual labels:  telegram-bot
F80
A Professional Telegram-Bot Based On valtman.name/telegram-cli
Stars: ✭ 36 (+176.92%)
Mutual labels:  telegram-bot
r scan
📷🖨Flutter二维码&条形码扫描插件,支持相机、文件、链接、Uint8List类型扫描
Stars: ✭ 108 (+730.77%)
Mutual labels:  qrcode
RedditDownloaderBot
A reddit downloader telegram bot
Stars: ✭ 32 (+146.15%)
Mutual labels:  telegram-bot
coinmarketcap-new-listings-sniper-bot
Sniper bot to buy new tokens listed on Coinmarketcap.
Stars: ✭ 55 (+323.08%)
Mutual labels:  telegram-bot
RadioPlayerV3
An Advanced Telegram Bot to Play Radio & Music in Voice Chat. This is Also The Source Code of The Bot Which is Being Used For Playing Radio in @AsmSafone Channel ❤️
Stars: ✭ 232 (+1684.62%)
Mutual labels:  telegram-bot
formatbot1
Make instant view easily and fast, from any article on the internet in the best messenger ever Telegram
Stars: ✭ 127 (+876.92%)
Mutual labels:  telegram-bot
python-ogren-4-saatte-python-baslangic
(TR) 4 saatlik Python başlangıç atölyesinin içerik dokümanı. (EN version is in progress!)
Stars: ✭ 71 (+446.15%)
Mutual labels:  telegram-bot
idea
Gestor de actividades en grupo
Stars: ✭ 16 (+23.08%)
Mutual labels:  telegram-bot
Google-Search-Bot
A google search telegram bot.
Stars: ✭ 32 (+146.15%)
Mutual labels:  telegram-bot
qr-code-unity-3d-read-generate
Generating a QR code / Scanning a QR code in Unity 3D. Pre-build DLL and sample code from old Unity
Stars: ✭ 70 (+438.46%)
Mutual labels:  qrcode
DrawPDF
Draw/Write pdf using Swift
Stars: ✭ 17 (+30.77%)
Mutual labels:  pdf-generation
EPUB-to-PDF
Telegram bot EPUB to PDF converter
Stars: ✭ 25 (+92.31%)
Mutual labels:  telegram-bot
pe4kin
Erlang wrapper for Telegram bot API https://core.telegram.org/bots
Stars: ✭ 47 (+261.54%)
Mutual labels:  telegram-bot

Présentation générale

AusweisBot est un logiciel libre permettant de générer pendant la pandémie de covid-19 une attestation dérogatoire de déplacement en France à travers le réseau de communication Telegram.

AusweisBot est écrit en Scala et utilise notamment l'intergiciel Akka, la bibliothèque bots4s.telegram, la bibliothèque Apache PDFBox et la bibliothèque ZXing. Vous pouvez utiliser le gestionnaire de tickets et de pull requests de GitHub pour faire des remarques sur des fonctionnalités ou proposer des changements.

FAQ

Est-ce que AusweisBot stocke des données à caractère personnel ?

AusweisBot conserve les seules données strictement nécessaires à la génération des attestations dérogatoires de sortie. Les données stockées peuvent être consultées à tout moment en utilisant la commande /data et effacées avec la commande /start.

Cette politique de gestion des données est détaillée dans le résultat de la commande /privacy qui peut être utilisée à tout moment, notamment avant la collecte des données personnelles.

Pourquoi ce nom ?

« Nous sommes en guerre » (Emmanuel Macron, 16 mars 2020)

« Ausweis » est un mot allemand signifiant « pièce d'identité ». Il était utilisé lors de la dernière guerre mondiale pour désigner les laissez-passer dérogatoires dont la présentation était obligatoire pour pouvoir circuler. Et puis cela permet de court-circuiter la loi de Godwin avant même de commencer la discussion.

Quelles garanties apportez-vous ?

Pour être clair : aucune. Ce logiciel ainsi que le service en ligne associé ont pour but de faciliter, sous votre propre responsabilité, la création d'une attestation dérogatoire de déplacement conforme à ce qu'exige la réglementation. C'est à vous de vous assurer que les informations qui figurent sur le document sont exactes. Le plus grand soin a également été apporté au contenu du QR-code contenu dans l'attestation afin de permettre une lecture sans contact du document par les forces de l'ordre afin de préserver la santé de chacun, mais là aussi, l'utilisation du QR-code lors d'un contrôle se fait sous la seule responsabilité de l'utilisateur.

AusweisBot est-il utilisable dans les territoires d'outre-mer ?

AusweisBot est avant tout destiné à la France métropolitaine : Telegram ne fournit aucune information sur la localisation de l'utilisateur ou le fuseau horaire dans lequel il se trouve. On suppose donc que l'utilisateur se trouve, par défaut, en France métropolitaine.

Cela n'empêche pas d'utiliser AusweisBot depuis les territoires d'outre-mer en spécifiant un horaire explicite. Toutefois, une attention particulière devra être apportée à l'examen du document produit pour s'assurer que tout est en ordre.

Cela permet-il de sortir dans plus de cas ou plus souvent ?

Non, AusweisBot permet simplement de générer les attestations dérogatoires de déplacement tel que vous le feriez avec l'attestation papier ou le générateur d'attestation mis à disposition par le ministère de l'intérieur. Restez chez vous !

Puis-je déployer mon propre bot à partir du code source de AusweisBot sur Telegram ?

Bien entendu, du moment que vous respectez les termes des licenses des logiciels et données utilisés (cf. ci-dessous). De plus, vous devez vous assurer que les informations permettant de vous contacter sont à jour.

Que pensez-vous du principe de cette attestation dérogatoire de déplacement ?

Peu importe ce que j'en pense, la présentation d'un document attestant d'une raison valable de sortie est rendue obligatoire par l'article 4 du décret n° 2020-1310 du 29 octobre 2020. Pour limiter les contacts lors du contrôle, il me semble plus simple de présenter une attestation identique à ce que propose le service en ligne du ministère de l'intérieur en y incluant un QR-code incorporant le même contenu.

Pourquoi Scala et pas rust, elixir, etc. ?

La bibliothèque Apache PDFBox écrite pour Java (et donc disponible directement en Scala) permet une manipulation facile du fichier PDF contenant l'attestation. De plus, Akka facilite la supervision et la reprise sur faute, notamment en cas de défaillance temporaire des serveurs Telegram ou en cas de perte de connectivité de l'ordinateur sur lequel le service est hébergé.

Pourquoi Scala 2.12 et pas Scala 2.13 ?

La bibliothèque bots4s.telegram n'est pas à ce jour disponible pour Scala 2.13 car elle utilise une dépendance (slogging) qui n'est plus maintenue et n'a jamais été adaptée pour Scala 2.13.

Licence

AusweisBot est distribué sous les termes de la licence GNU Affero Public License version 3.0.

Pour faciliter la saisie du lieu de confinement, ce logiciel utilise une liste des communes de France et de leurs codes postaux qui s'accompagne de la licence suivante :

Ce(tte) œuvre de https://sql.sh est mise à disposition selon les termes de la licence Creative Commons Attribution – Partage dans les Mêmes Conditions 4.0 International.

Vous êtes libre de partager, distribuer ou utiliser cette base de données, pour des utilisations commerciales ou non, à condition de conserver cette licence et d’attribuer un lien vers le site sql.sh.

Comment lancer mon propre bot ?

Vous aurez besoin d'un ordinateur avec une connectivité permanente à Telegram pour faire tourner votre version du bot. Il vous faudra également créer un jeton d'authentification du bot auprès du gestionnaire de robots BotFather.

À la main

Vous aurez besoin de sbt pour compiler et lancer ce programme.

Le fichier de configuration se trouve dans src/main/resources/application.conf. Il vous faudra a minima remplir l'entrée ausweis.telegram-token avec le jeton d'authentification fourni par BotFather et ausweis.contact-email avec votre adresse mail de contact pour la gestion des données personnelles. Vous pouvez préférer placer ces informations dans un fichier à la racine de votre dépôt et le passer en premier argument du programme.

Par défaut, le programme se connecte à une base de données CouchDB tournant localement sur le port par défaut en mode non protégé. Il faut donc n'autoriser que des connexions locales, ou utiliser des conteneurs (cf. ci-dessous).

Vous pouvez lancer le bot avec la commande run (ou run configuration-file) de sbt.

Dans des conteneurs

Un fichier de configuration pour docker-compose est fourni à la racine du dépôt, auquel cas seuls docker et docker-compose sont strictement nécessaires.

Pour lancer votre instance du bot, il vous faut d'abord créer un fichier de configuration .env à la racine du dépôt contenant a minima TELEGRAM_TOKEN=le-token-donné-par-BotFather et CONTACT_EMAIL=votre-adresse-mail-de-contact. Vous pouvez ensuite générer les conteneurs avec docker-compose build puis les lancer avec docker-compose up.

Vous pouvez aussi récupérer automatiquement la dernière version officielle des conteneurs à partir de DockerHub, et lancer le tout en tâche de fond grâce aux commandes

$ docker-compose pull
$ docker-compose up -d

Dans ce cas, vous n'avez besoin de rien d'autre que le fichier .env que vous avez créé et le fichier docker-compose.yml se trouvant à la racine du dépôt.

Gérer la liste des commandes pour BotFather

La liste des commandes à donner à BotFather pour générer la complétion automatique peut être générée en faisant à l'aide :

  • soit de sbt genCommands lorsqu'on compile depuis les sources, qui générera un fichier commands.txt dans le répertoire courant ;
  • soit de la commande docker run --rm rfc1149/ausweisbot cat commands.txt pour les utilisateurs de Docker
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].