Skip to content

Telegram ai movie recommendation bot. Dialogflow + telegram bot + tmdb api

Notifications You must be signed in to change notification settings

valefras/moview-webhook

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

moview

An open source movie recommendation bot for Telegram.

logo

tech stack

With moview you can ask for a movie of a certain:

  • actor
  • director
  • genre
  • year
  • language etc.

For example: "give me a comedy movie from 2010"

Getting Started

  1. scaricare o clonare il progetto https://github.com/asdf1899/moview-webhook.git
  2. nella root del progetto creare un file .env
  3. dentro il file .env aggiungere l'api key di tmdb (in questo modo TMDB_KEY=api_key_di_tmdb), la porta di rete (PORT=8080) e JSON_BIN_NUMBER=api_key_di_extendsclass
  4. eseguire il comando npm install
  5. creare un branch col tuo nome es. moview_mario
  6. per far partire il progetto eseguire node src/index.js oppure npm run start
  7. una volta completate le modifiche seguire le istruzioni in contribution
Se nessuno sta lavorando al bot puoi testarlo in questo modo:
  1. scaricare ngrok
  2. rendi il server temporaneamente online (ngrok http 8080)
  3. copiare l'url di ngrok (la versione https) in "webhook" nella sezione Fulfillment di Dialogflow

Structure

  • node_modules -----------------------(librerie)
  • src
    • api
      • handlers.js ------------------(funzioni con intent)
      • movieControllers.js ---------(funzioni che comunicano con tmdb)
    • bot
      • index.js ----------------------(bot telegram) -> NON SERVE PIU' (ma lo teniamo perchè non si sa mai)
    • server.js ---------------------------(server e webhook)
  • .env ------------------------------------(variabili d'ambiente)
  • .package.json --------------------------(configurazioni varie)

Contribution

Premessa: non lavorare direttamente nel branch main, ma nel tuo branch moview_nome

  1. Prima di fare una pull request, dal tuo branch (moview_nome), scaricare l'ultima versione del progetto usando il comando "git pull origin main"
  2. se non ci sono problemi, dal tuo branch eseguire il comando git push origin moview_nome (sostituire moview_nome col tuo nome)
    • ATTENZIONE: non fare git push se sei nel branch main
    • Controlla sempre di essere nel tuo branch (moview_nome)
    • Se è la prima volta che fai push dal tuo branch ti chiederà di aggiungere il branch a remote usando il comando git push --set-upstream origin moview_nome
  3. dalla repo su Github, aprire la scheda pull requests oppure direttamente da qua
  4. cliccare il pulsante verde "New pull request"
  5. selezionare il tuo branch (moview...) e il branch base (development) com in figura

6. aggiungere nel commento le modifiche effettuate ed infine cliccare sul pulsante "create pull request"

Deployment

Per pubblicare il progetto su heroku è consigliato utilizzare un branch a parte (per es. production), dove il codice è 'pulito' e non ci sono console.log() o altro codice che potrebbe 'sporcare' la console.

Se si è stati aggiunti come contributor in heroku, per pubblicare una nuova versione del progetto:

  • spostarsi su un branch production
  • fare il merge delle modifiche
  • sistemare il codice (togliere i console.log() ecc.)
  • da terminale eseguire il comando heroku login (verrai reindirizzato sul tuo browser per fare il login)
  • poi heroku git:remote -a moviewbot
  • ed infine git push heroku production:main (utilizzare branch:main se si vuole pushare da un branch diverso da main in locale a main su heroku) I log del server si possono consulare o sulla dashboard di heroku sul sito, oppure direttamente dal terminale, utilizzando il comando heroku logs --tail

Visto che non c'è documentazione per dialogflow fullfillment (nodejs), conviene cercarsi le robe che servono direttamente all'interno della libreria su Github


Authors

About

Telegram ai movie recommendation bot. Dialogflow + telegram bot + tmdb api

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%