Skip to main content

Push directory to Telegram channel

Project description

Hattifnatt watches a directory for changes and creates, updates or deletes files in a Telegram channel accordingly. File digests and message IDs are persisted in a state file (named .hat), so even updates that occur when the watcher is not running will be pushed correctly. Note that Telegram will sometimes corrupt the file names on upload; this will not break anything, but cannot be fixed by this tool, either. Any Telegram chat could theoretically be used—not necessarily a channel—but the bot API limits deletion of old messages in personal chats.

A single command-line tool is provided, hat, that watches the current directory, reads the Telegram bot token from the environment variable TOKEN, the Telegram chat ID from the environment variable CHAT, and the glob patterns to watch from the command-line arguments (all files are watched by default). The tool can be stopped by ^C.

Alternatively, the function hattifnatt.push(chat, patterns) performs the same function programmatically. It accepts chat, a telegram.Chat object (obtained from telegram.Bot.get_chat), and a list of glob patterns. For now it does not support pushing directories other than the current one.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for hattifnatt, version 0.2.1
Filename, size File type Python version Upload date Hashes
Filename, size hattifnatt-0.2.1-py3-none-any.whl (7.5 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size hattifnatt-0.2.1.tar.gz (7.5 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page