Hey I am Lupin, an Open Source Telegram Python Chat Bot build to supercharge your LogSeq with great features like Interstitial Journaling | Flashcards | Brainmaps | PDF / Web Annotations | {TODO; DOING; LATER} | Bookmarks | Images upload and more
There are two methods to deploy Lupin. You can install it manaully or your can use Docker. Either method will require that you place information in a config.ini
file.
Assuming you are already using LogSeq & are familar with Python.
Lupin requires Python version >= 3.x
- Clone me
git clone https://github.com/akhater/Lupin
- Create a telegram bot
- Install Python Telegram Bot library using
pip install python-telegram-bot
orpip3 install python-telegram-bot
- Install PyGithub library using
pip install pyGitHub
orpip3 install pyGitHub
- Install the
requests
library usingpip install requests
orpip3 install requests
- Generate a Github token from
https://github.com/settings/tokens
- Rename
config.sample.ini
toconfig.ini
- Change values in
config.ini
to fit your environment - Run the bot using
python main.py
orpython3 main.py
The container is based off the official python 3 images.
The only requirement is that you have Docker installed.
Before pulling the container please follow these steps:
- Create a telegram bot: https://core.telegram.org/bots#creating-a-new-bot
- Generate a Github personal token from https://github.com/settings/tokens
- Download config.sample.ini and save it as
config.ini
- Change values in
config.ini
to fit your environment
Note: That if you do not change the time zone (TZ) your timestamp will reflect Eastern US Time (America/New_York). You can see a list of time zones here that way you can have the timestamp reflect a time zone of your choosing.
You can run an instance of Lupin where your config.ini
is located by typing this in your terminal:
docker run -d \
--name lupin \
--mount type=bind,source=$(pwd)/config.ini,target=/app/config.ini \
-e TZ=America/New_York \
--restart unless-stopped \
digitalknk/lupin
You could also create a docker-compose.yaml
file and copy/paste the text from below or download it from the repo, save it where your config.ini
is located. You can then deploy Lupin by typing this in your terminal docker-compose up -d
in the same directory.
version: "3.2"
services:
lupin:
container_name: lupin
image: digitalknk/lupin
volumes:
- type: bind
source: ./config.ini
target: /app/config.ini
environment:
TZ: America/New_York
restart: unless-stopped
When a new update to the container is released, you can update your pulled image by running one of these depending your deployment strategy where your config.ini
is located:
If you used the docker run
command:
docker stop lupin
docker rm lupin
docker run -d \
--name lupin \
--mount type=bind,source=$(pwd)/config.ini,target=/app/config.ini \
-e TZ=America/New_York \
--restart unless-stopped \
digitalknk/lupin
If a docker-compose.yaml
is used:
docker-compose stop
docker-compose rm -f
docker-compose pull
docker-compose up -d
- Privacy always - self hosted & open source
- Security
- Entries are only accepted from telegram BotAuthorizedIDs so not anyone can add entries to your journal
- Fully customization with config.ini file
- Rename it
- Translate it (no hard coded messages)
- much more
- Send a thought (any text) and Lupin will make your Interstitial Journaling a breeze
- Timestamp it: supporting both 12 and 24 hrs format
- You can also turn off the timestamp all together if that's what you want
- Enter it in your Github hosted Jounral
- Send your TODO list (by including TODO in the text) and Lupin will convert it to a LogSeq TODO
- TODO command is customizable
- Send a link and Lupin automatically create a #bookmark entry in your Journal in the form of
- 18:48 #bookmark title
- #bookmark tag is customizable
- Send a YouTube video link and Lupin will automatically embedded in your Journal in the form of
- 18:52 {{Youtube link}}
- Send
/anno uri
to import all your annotations from for the uri from Hypothesis - Support for both LogSeq regular Journal and custom Journal folder and/or file
- Spaced Repetion: Spaced Repetition capabilities based on SuperMemo2 Algorithm
- Calendar Generation: Auto generates PiotrSss calendar and puts them in the sidebar
- Theme Switcher: Switch between multiple themes by calling /themes
- Generate Mindmaps of your pages by called /getMM PageTitle
- Support for AGE encryption and encrypted Graphs
Supported format for flaschards is
## #flashcardtag
### Question 1
#### answer line 1
#### answer line 2
### Question 2
#### Answer 2
Flashcard tag is customizable Algorithm used is SuperMemo2 Triggers are /tsr import --> scan - import - update your flashcards /tsr x -> retrieve x flashcards from you pending pool /tsr -> retrieve the default number of cards set in your config .ini file Below entry in config.ini specifies you default number of flashcards
[TimeSpacedRepetion]
flashcardDailyGoal=10
Before being able to use this feature you need to name your various themes in the format ThemeName.custom.css
and place them in the /logseq folder
Command | Description |
---|---|
/start | Just a greeting |
/uptime | returns Lupin Uptime |
/ver | returns Lupin running Version |
/help | help command (WIP) |
/anno URL | Import hypothesis annotations from URL |
/importFC | Imports your Flashcards into Lupin |
/srs import | alias of /importFC |
/srs x | starts a round of SRS for x flashcards |
/getMM pageTitle | Generates a dynamic MindMap for pageTitle |
/pullNow | Pulls all pages from your Git for fast access |
/themes | calls the theme changer |
/encryptAll | Encrypts all your pages with AGE keys |
/decryptAll | Decrypts all your pages back to clear text |
Imported Hypothesis notes into LogSeq