/messenger-maid-chan

[Deprecated] Maid-chan feat Facebook Messenger bot to accompany personal daily life

Primary LanguagePythonMIT LicenseMIT

[Deprecated] Maid-chan feat Facebook Messenger

CircleCI readthedocs

Note 2: As of March 4, 2020, Facebook Messenger does not allow non-news page to use NON_PROMOTIONAL_SUBSCRIPTION tag.

After March 4th, 2020 Only Pages that are registered with the Facebook News Page Index (NPI) will be allowed to send non-promotional subscription messages. This rule has blocked Maid-chan in sending background messages.

Note: As of October 5, 2018, Maid-chan is now migrated to Python 3.6+.

Maid-chan name is inspired from Sakurasou's Artificial Intelligence.

If you have any other ideas, I am accepting contributions :) For developers, you could access the documentation pages for developers here. For others who are interested in using Maid-chan features, please ask me directly and head to Maid-chan Facebook Page.

Maid-chan is featured in:

Available Features

  • Upload image for random image filtering via Primitive (Requires maidchan_primitive running in the background and ImageMagick convert feature for generating GIF)

Combined result

  • Simple chat (English or Bahasa Indonesia) via ChatterBot feat langdetect. The accuracy is still bad, though

  • Daily good morning and good night messages, with "offerings"! (Requires maidchan_scheduler running in the background)

  • Daily Japanese Kanji & Vocabulary (Requires maidchan_scheduler running in the background)

  • RSS Feed Notifier for Anime, Manga, etc which is similar to my previous RSS Twilio bot (Requires maidchan_scheduler running in the background)

  • [Experimental] Tokyo train status feat Yahoo Japan (Requires maidchan_scheduler running in the background)

All time-related features are currently handled in UTC+9 (Japan Time).

Available Commands

All users

  • help: You will get the list of all available commands from Maid-chan
  • subscribe offerings: Maid-chan will start giving you a good morning message and a good night messages
  • unsubscribe offerings: Maid-chan will stop spamming you with those messages, but Maid-chan will be sad :'(
  • update offerings: Maid-chan will ask you about your usual waking up and sleeping time, because Maid-chan doesn't want to disturb your sleep . . ., usually :p (some surprises inside!)

  • subscribe japanese: Maid-chan will start sending you random daily Kanji & Vocabulary
  • unsubscribe japanese: Maid-chan will stop sending you random daily Kanji & Vocabulary
  • update japanese: Maid-chan will ask about your level preference for Kanji (N1 to N4, old test format)

  • update name: By default, Maid-chan will call you with onii-chan

  • subscribe rss: You could add an RSS feed with its pattern and let Maid-chan notify you when there is an update
  • unsubscribe rss: You could remove one of your RSS feed subscription each time you call this command

  • [Experimental] subscribe train: Maid-chan will give you updates related to Tokyo train status (currently, it only supports admin's train line :p)
  • [Experimental] unsubscribe train: Maid-chan will stop sending you information related to Tokyo train status
  • show profile: Do you want to know what Maid-chan knows about you? Then, you could use this command!

How to Run

  1. For initial configuration, you need to create maidchan/config.py based on maidchan/config.py.example and fill those values based on your own configuration.

  2. Maid-chan is using Redis as the database. Redis can be downloaded via https://redis.io/download. Run Redis as a background process in port 6379 (default port).

  3. ChatterBot 0.8.X has dropped support for simple JSON storage because of performance issues. Depending on your choice, you need to have either SQLite or MongoDB and modify maidchan/config.py accordingly. Alternatively, you can set IS_CHATTERBOT_ENABLED flag to False in maidchan/config.py to disable chatbot feature. MongoDB Installation Guide

  4. It is recommended to use venv (e.g.: python3 -m venv venv then source venv/bin/activate). You need to install all dependencies via pip install -r requirements.txt.

  5. Run python setup.py install to build Maid-chan. Finally, you can execute maidchan in the background process to run this bot.

Priority Ideas

Existing Feature Improvement Ideas

  • (Admin only) Broadcast message to all users which have talked to Maid-chan at least once
  • Modifiable daily Japanese Kanji & Vocabulary time
  • Automatic offerings update from upstream

Future Ideas

  • Japanese language quiz
  • Image recognition, e.g.: waifu recognizer - https://github.com/nagadomi/lbpcascade_animeface or self-created
  • Natural Language processing for conversing daily conversation (Naturally we can improve it with IBM Watson or Google Cloud Speech, but the model "probably" differs from Maid-chan requirement)
  • Mini games
  • Location-aware features: Recommendation, weather, etc
  • IoT with home electronics
  • etc

Reference

License

This project itself is licensed under MIT License. All images are owned by their respective creators.

Last Updated: October 5, 2018