Using Telegram as a Database
You can use Telegram as a Database, thanks to TelegramDB.
Note
This feature is still in beta and this is just a pre-release.
Contents
Needed Variables
DB_SESSION
- String Session for a Telegram account.DB_CHAT_ID
- Create a new telegram channel for database. Set Telegram ID for that channel as this.
What is a DataPack?
Like there are Tables in SQL, TelegramDB has DataPacks. It is just a fancy term to scare you.
Create a DataPack
from pystark import Stark
from pystark.database.telegram_db import DataPack, Member, Session
# Create a DataPack like you create a Table in Postgres (SQLAlchemy).
class TestData(DataPack):
__datapack_name__ = "test"
id = Member(int, is_primary=True)
name = Member(str)
aim = Member(str)
def __init__(self, id, name=None, aim=None):
self.id = id
self.name = name
self.aim = aim
Session.prepare_datapack(TestData)
Query a DataPack
# Import Session object from pystark
from pystark.database.telegram_db import Session
# "test_data.py" is a file in "database" folder, where class TestData is located.
from database.test_data import TestData
# Commit to DataPack.
test = TestData(1, name="Stark", aim="Create Time Machine")
Session.commit(test)
# Get info from DataPack.
user = TestData(1) # pass primary key.
if Session.get(user):
print("User exists!")
print("ID: ", user.id)
print("Name: ", user.name)
print("Aim: ", user.aim)
else:
print("No user with ID: 1")
Load DataPacks and Enable Telegram DB
After adding variables specified above, you need to create datapack(s) using Python Classes. For a datapack to be loaded, you need to import it in some plugin. Also, you obviously you need to import it to use it anyway.
Example:
# Let's say I've a file named `a.py` with class `DataPack1`.
# This file is located in a folder named `dbs` in same directory as 'bot.py'.
from dbs.a import DataPack1
This will enable the database and load DataPack1
named datapack.