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
17 changes: 17 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"env": {
"browser": true,
"commonjs": true,
"es2021": true
},
"extends": ["airbnb-base", "prettier"],
"parserOptions": {
"ecmaVersion": 12
},
"rules": {
"prettier/prettier": "error",
"no-console": "warn",
"no-plusplus": "off"
},
"plugins": ["prettier"]
}
6 changes: 6 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"singleQuote": true,
"trailingComma": "es5",
"printWidth": 80,
"tabWidth": 2
}
40 changes: 20 additions & 20 deletions alice/index.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
// imports
let src = require('./src')
let build = require('./src/build')
const src = require('./src');
const build = require('./src/build');

// instance
let path = new build.Path(__dirname)
const 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')
])
const alice = new src.Alice([
path.create('scripts/bot', 'bot'),
path.create('scripts/coin', 'coin'),
path.create('scripts/commands', 'commands'),
path.create('scripts/cron', 'cron'),
path.create('scripts/dice', 'dice'),
path.create('scripts/doc', 'doc'),
path.create('scripts/doc', 'help'),
path.create('scripts/github', 'github'),
path.create('scripts/links', 'links'),
path.create('scripts/lyric', 'lyric'),
path.create('scripts/report', 'report'),
path.create('scripts/search', 'search'),
path.create('scripts/suggest', 'suggest'),
path.create('scripts/wiki', 'wiki'),
]);

alice.initialize()
alice.initialize();
34 changes: 16 additions & 18 deletions alice/scripts/bot.js

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

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

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
}
try {
const response = await axios.get(url);
const 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
}
const $ = await loadCheerio(url);
if (typeof $ === 'function') {
const priceStatistics = $('.sc-AxhCb.gsRRvB.container___E9axz');
const priceStatisticsTable = priceStatistics.find('table');
const priceStatisticsTableBody = priceStatisticsTable.find('tbody');
const priceStatisticsTableRow = priceStatisticsTableBody.find('tr');

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

const 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();
}

return null
console.log(value);

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

return data;
}

return null;
}

let _default = `
const defaultMessage = `
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/'
module.exports = async (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'
}
}
if (data.args.includes('brl')) {
BASE_URL = 'https://coinmarketcap.com/pt-br/currencies/';
}

if (data.text) {
const text = data.text.replace(/\s/g, '-').toLowerCase();
const 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) => {
const [key, value] = Object.entries(elem)[0];

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

else {
return _default.trim()
return coinDataString.trim();
}
}
return 'moeda não encontrada';
}
return defaultMessage.trim();
};
10 changes: 5 additions & 5 deletions alice/scripts/commands.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module.exports = function () {
let string_output = `
module.exports = () => {
const stringOutput = `
Os seguintes comandos estão disponiveis:
- !bot
- !commands
Expand All @@ -13,7 +13,7 @@ module.exports = function () {
- !search
- !suggest
- !wiki
`
`;

return string_output.trim()
}
return stringOutput.trim();
};
Loading