Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
node_modules/
alice/system/auth/session.json
alice/src/auth/session.json
1 change: 0 additions & 1 deletion Procfile

This file was deleted.

20 changes: 20 additions & 0 deletions alice/future/plans.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
- novos métodos:
- !doc --<componente> || FEITO:
- documentação das funções
- !command || FEITO:
- resumo dos comandos
- !quotation --<from> --<to>:
- cotas monetárias
- !music --<download>:
- procura uma musica no youtube, e baixa caso requerido


- novas funcionalidades
- escope || IMPORTANTE
- conjunto de wrappers para criar escopo de funções no whatsapp
- context
- api de contexto para lembrar de cada membro individualmente
- scheduler || FEITO
- ativa métodos em determinadas horas do dia
- action
- ativa métodos de acordo com eventos
25 changes: 25 additions & 0 deletions alice/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// imports
let src = require('./src')
let build = require('./src/build')

// instance
let path = new build.Path(__dirname)

let alice = new src.Alice([
path.create('scripts/bot', alias='bot'),
path.create('scripts/coin', alias='coin'),
path.create('scripts/commands', alias='commands'),
path.create('scripts/cron', alias='cron'),
path.create('scripts/dice', alias='dice'),
path.create('scripts/doc', alias='doc'),
path.create('scripts/doc', alias='help'),
path.create('scripts/github', alias='github'),
path.create('scripts/links', alias='links'),
path.create('scripts/lyric', alias='lyric'),
path.create('scripts/report', alias='report'),
path.create('scripts/search', alias='search'),
path.create('scripts/suggest', alias='suggest'),
path.create('scripts/wiki', alias='wiki')
])

alice.initialize()
20 changes: 20 additions & 0 deletions alice/scripts/bot.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

101 changes: 101 additions & 0 deletions alice/scripts/coin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
const axios = require('axios')
const cheerio = require('cheerio')


async function loadCheerio(url) {
try {
let response = await axios.get(url)
let html = response.data

return cheerio.load(html)
}

catch (err) {
console.log('error', err.response.status)

return null
}
}

async function getData(url) {
let $ = await loadCheerio(url)
if (typeof $ === 'function') {
let priceStatistics = $('.sc-AxhCb.gsRRvB.container___E9axz')
let priceStatisticsTable = priceStatistics.find('table')
let priceStatisticsTableBody = priceStatisticsTable.find('tbody')
let priceStatisticsTableRow = priceStatisticsTableBody.find('tr')

let data = []
priceStatisticsTableRow.each(function() {
let elem = $(this)

let key = elem.find('th').text()

let value = elem.find('td')
if (value.find('span.sc-1v2ivon-0.gClTFY').text()) {
value = value.find('span').first().text()
+ ' || ' +
value.find('span.sc-1v2ivon-0.gClTFY').text()
}

else {
value = value.text()
}

console.log(value)

if (value !== 'No Data' || value !== 'Sem Dados') {
let object = Object.fromEntries([[key, value]])
data.push(object)
}
})

return data
}

return null
}

let _default = `
uso: *!coin* [--flag] name
_--all -> mostra todas as informações disponiveis_

a flag _all_ pode retornar dados em excesso, sua utilização repetida será considera spam
`

module.exports = async function(data) {
let BASE_URL = 'https://coinmarketcap.com/currencies/'

if (data.args.includes('brl')) {
BASE_URL = 'https://coinmarketcap.com/pt-br/currencies/'
}

if (data.text) {
let text = data.text.replace(/\s/g, '-').toLowerCase()
let url = BASE_URL + text
let coinData = await getData(url)

if (coinData) {
if (!data.args.includes('all'))
coinData = coinData.slice(0, 3)

let coinDataString = ''
coinData.forEach(elem => {
let [key, value] = Object.entries(elem)[0]

let string = `*_${key}_*:\n - ${value}\n\n`
coinDataString += string
})

return coinDataString.trim()
}

else {
return 'moeda não encontrada'
}
}

else {
return _default.trim()
}
}
19 changes: 19 additions & 0 deletions alice/scripts/commands.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
module.exports = function () {
let string_output = `
Os seguintes comandos estão disponiveis:
- !bot
- !commands
- !cron
- !doc
- !dice
- !github
- !links
- !lyric
- !report
- !search
- !suggest
- !wiki
`

return string_output.trim()
}
Loading