Skip to content

Latest commit

 

History

History
235 lines (182 loc) · 5.82 KB

README.md

File metadata and controls

235 lines (182 loc) · 5.82 KB

Iandi assistant

Iandi it's a simple, open source, privacy oriented assistant based on sobot.

This isn't an official Telegram client.

Table of contents

Features

  • What time is it?
  • What day is it?
  • Repeat
  • Calculate
  • Set language
  • Set country
  • Set city
  • Set custom/shortcut commands
  • Phone
    • Read messages
    • Send message
  • Get near places (work in progess...)
    • Restaurants
    • Cafes
    • Markets
    • Banks
  • Do i need umbrella today?
  • How is the weather?
  • Notes manager
    • Add a note
    • Delete a note
    • Read notes
  • Reminder manager
    • Add a reminder
    • Delete a reminder
    • Read reminders
  • System utility
    • Run program
    • Set system volume
    • Turn up the system volume
    • Turn down the system volume
  • Dice
    • Random number
    • Flip a coin
    • Roll a die
  • Timer
    • Set a timer
    • Verify timer
  • Answer (ask a question to search on web)
  • Music player
    • Play (search on YouTube)
    • Stop
    • Pause
    • Resume
    • Set volume
    • Turn up the volume
    • Turn down the volume
    • Mute
    • Unmute
  • Read the news

Todo

  • GUI
  • Tray icon
  • Phone
    • Improve contact search
    • Call
  • Dictate
  • Lists
  • Alarms clock
  • Translate command
  • Search on web command
  • RSS reader
  • Road directions
  • Play music even offline
  • Change stt (maybe deepspeech)
  • Change tts
  • Configuration page in ad-hoc wifi
  • Fix plugins problems when Iandi's main use internals.py
  • Make the code python3 compatible
  • Finish near places
  • Stock market

Install/Uninstall

Dependencies

System

Python

  • pyaudio
  • playsound
  • pyttsx3
  • speechrecognition
  • pocketsphinx
  • pyalsaaudio
  • python-vlc

Install

sudo ./install

To log into Telegram:
python telegramlogin.py

Step by step installation

  • "Install dependencies?" will ask you to insert a package manager (apt, dnf, etc.) and it will install all dependecies automatically (along with pip).
  • "Install snowboy?" will install the wake word detector. If you want use vocal command, then type Y then choose a precompiled snowboy. If in the list there isn't your system, then you have to compile it by yourself.
  • "Compile procname?" will enable Iandi to manifest it self as "Iandi" in task managers and system monitors.
  • "Get Terminal Virtual Face?" will get the python code to generate a talking face in the terminal. Type Y if you are unsure.
  • "Install tdlib?" will enable Iandi to use telegram to get and send messages across it.
  • "Install brain MIME type?" will enable the system to see the *.brain files as a brain for sobot like bots.
  • "Install Iandi on system?" will enable the user to execute Iandi by typing "iandi" into the terminal or by executing the launcher (.desktop)
  • "Autostart Iandi on login?" (only if installed on system) will autostart Iandi on user login.

Uninstall

The uninstall process depends on where you installed Iandi.
For the default installation path this will fit:

sudo rm -rf /usr/local/bin/iandi ~/.iandi

Execution types

At the moment there are only 3 execution types:

  • Lite
  • NoUi
  • Normal

To select execution type, pass it as argument:
./iandi lite ./iandi noui

Passing no argument means normal execution type will be set.

Translations

How it works

There are 2 files which have to be translated:

  • brain (in brains/)
  • json (in langs/)

To better understand brain syntax, read sobot's readme.
To better understand json in langs/ just use eng.json as example.

For lang code use the 3 digits version. A list of all codes are available in ISO-639-2_utf-8.txt.

Available translations

Brain

  • English
  • Italian

Json

  • English
  • Italian

Plugins

Add a plugin

To add a plugin, just add a folder in "plugins/" and in it put "_init_.py" with functions you want add or replace.

How plugins works

To access global vars (like brain), import globalvars and then call globalvars.varName.
Example: globalvars.brain

When creating internal plugin's functiones and vars, choose names not used by internal Iandi's functiones/vars or by other plugins, to avoid problems.

To disable a plugin, just put a "-" in front of folder name.

Plugin example

  • gtts: use Google tts for output.
  • lol: add command "lol" to brain.

External sources

License

GPLv3


Iandi 0.1 Readme update of 2021/09/23