Botiska is a Python bot to help you complete your card collection on Historiska! The script will each time a day;
- Connect to your main account and collect your 4 cards
- Connect to each second account you have and collect their 4 cards
- Give to your main account each duplicate card a second account may receive
- Warn you if you got a new card in your main collection!
- Update your Discord messages (Researched and missing cards) on the Historiska Discord (Optionnal, Self-bot are againt Discord's TOS, use this feature at your own risk)
- Logout, wait 24h and do-it again.
You can run this script either on Windows (tested: Windows 10) or Linux (tested: Debian 12 Bookworm) with Python 3.10 or later.
- Clone this repository with
git clone https://github.com/Lucaa8/Botiska.git - Open a CMD in the repository folder
- Create a Python virtual environnement with
python -m venv venv - Activate the virtual environnement with
.\venv\Scripts\activateon Windows orsource venv/bin/activateon Linux - Install the Python requirements with
python -m pip install -r requirements.txt - Start the program with
python main.py(You cant before the Configuration step) - To leave the venv with Linux type
deactivate
If you want to run this script on a Linux server you can use screen
- You will need to install it with
sudo apt-get install screen - Create a script e.g
start.sh(nano start.sh) and put the following line inside itscreen -S botiska -d -m bash -c "source venv/bin/activate; python main.py" - Give the script the execute permision with
sudo chmod 774 start.sh - Run the script with
./start.sh(You cant before the Configuration step) - Now you can attach to the screen with
screen -r botiskaand detach from it (when inside) withctrl+a+d
Kill the script if running to continue in this step
In this step we will configure the script to tell him which Historiska account you want to use and which Discord account the self-bot will use.
- Rename the
config_Example.jsonfile toconfig.json(mv config_Example.json config.jsonfor Linux) - Set your main account (the account you will get the cards on) credentials.
idcan be either your mail or username
"main": {
"id": "luca",
"password": "mysecretpassword"
}- Set all your second accounts (those accounts will give their duplicates to your main account). You can give as many accounts as you want
"others": [
{
"id": "luca2",
"password": "mysecretpassword2"
},
{
"id": "luca3",
"password": "mysecretpassword3"
}
]Set your trade restrictions(Only if you are using the Discord feature). It's an advanced setting, you wont need it- Set your Discord information if you set
enabled: true-
api_version: Leave it as it is -
token: Your Discord authorization token, you can find it in API requests headers while reading theNetworktab of Firefox or Google Chrome -
missing.message_id: Your Discord message's id inside the#cartes-recherchéeschannel in the Historiska Discord.

-
duplicates.message_id: Same asmissing.message_idbut for the#cartes-à-doubleschannel
-
You can type some text while the script is running.
- quit: Ends the script
- coming soon
If every step went well you can see the current datetime when running the script. You will need to wait 4am in the morning to check if it worked!
Here an example of output you should see
