Skip to content

yuderobot/markov-toot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

markov-tweet

Automatically generate and tweet sentences like your daily tweets by using markov-chain.

Dependencies

  • Python 3.x
  • pandas
  • MeCab
  • mecab-python3
  • Mastodon.py

Setup

Docker (Docker Compose)

  1. Download your tweets from Twitter (Download an archive of your data).
  2. Convert tweets.js to tweets.csv by using Twitter archive JS to CSV converter.
    Warning: Don't forget to rename .csv file!
  3. Put tweets.csv into data/ (please create new directory).
  4. Set environment variable in docker-compose.yml
  5. Copy banned.json.sample as banned.json.
  6. Configure banned words in banned.json as you like.

Manual

  1. Install Python 3.x, MeCab in the way of your environment.
  2. Run pip install -r requirements.txt to install depending Python packages.
  3. Download your tweets from Twitter (Download an archive of your data).
  4. Convert tweets.js to tweets.csv by using Twitter archive JS to CSV converter.
    Warning: Don't forget to rename .csv file!
  5. Put tweets.csv into app/.
  6. Copy .env.sample as .env.
  7. Put your tokens related to Twitter into .env. (You can get one from Developer Portal.)
  8. Copy banned.json.sample as banned.json.
  9. Configure banned words in banned.json as you like.

Run

Manual

python3 run.py

Docker Compose

  1. Create docker-compose.yml and paste the below and set your token in this file.
    version: '3'
    services:
        markov-toot:
            restart: always
            container_name: markov-toot
            image: ghcr.io/yuderobot/markov-toot:master
            volumes:
              - "./data:/app/data"
            environment:
              # Twitter API related
              - CK=
              - CS=
              - AT=
              - AS=
              # Length of sentence
              - N=1
    
  2. Run docker-compose up -d. To update, run docker-compose pull before firing up the container.

Change settings

Remove RT, replies and URLs from source

  1. If you already run this bot, please delete triplets.pkl.
  2. Run python3 clean.py on this repository.
    Warning: Make sure you have tweets.csv inside the bot directory!
  3. Rename tweets.csv as tweets.csv.bak.
  4. Rename tweets_processed.csv as tweets.csv.
  5. Run the bot.

Change the number of sentences

  1. Open .env or docker-compose.yml and change the value of N.
  2. Run the bot.

Running this bot regularly

Use crontab to run this bot regularly.
If you use Docker image, you don't need to do this (already configured).

Example

*/20 * * * * cd /path/to/your/markov-tweet; /usr/bin/python3 /path/to/your/run.py
This definition make this bot run every 20 minutes. (*:00, *:20, *:40)

References

License

This project is licensed under the MIT License.