diff --git a/index.js b/index.js index 494e863..768886c 100644 --- a/index.js +++ b/index.js @@ -28,7 +28,12 @@ const TelegramBot = require('node-telegram-bot-api'); global.bot = new TelegramBot(config.private.token, { polling: true }); // Драйвер для работы с базой данных RethinkDB -global.r = require('rethinkdbdash')(); +global.r = require('rethinkdbdash')({ + db: 'lostfilm', + servers: [ + {host: '192.168.1.2', port: 28015} + ] +}); // Либа по типу Underscore для функционального программирования global.R = require('ramda'); @@ -148,7 +153,7 @@ bot.onText(/^\/login/, function (msg) { .then(function (res) { if (res.body.success && res.body.success === true) - return r.db('lostfilm').table('users') + return r.table('users') .insert({ id: msg.from.id, cookie: res.cookie @@ -176,7 +181,7 @@ bot.onText(/^\/dl_(\d+)_(\d+)_(\d+)|^\/dl_(\d+)_(\d+)/, function (msg, match) { else qs = {c: match[4], s: match[5], e: 999}; - r.db('lostfilm').table('users') + r.table('users') .get(msg.from.id) .then(function (res) { @@ -224,7 +229,7 @@ bot.onText(/^\/dl_(\d+)_(\d+)_(\d+)|^\/dl_(\d+)_(\d+)/, function (msg, match) { // В перспективе нам может понадобиться usess-код, расположенный внизу // любой страницы retre.org, поэтому парсим и сохраняем в базу "на всякий" const usess = /- (.+) ;/.exec($('.footer-banner.left > a').attr('title'))[1]; - r.db('lostfilm').table('users') + r.table('users') .get(msg.from.id) .update({ usess: usess @@ -292,7 +297,7 @@ bot.onText(/^\/dl_(\d+)_(\d+)_(\d+)|^\/dl_(\d+)_(\d+)/, function (msg, match) { const buffer = Buffer.concat(temp); console.log(buffer); - r.db('lostfilm').table('serials') + r.table('serials') .get(parseInt(match[1] || match[4])) .then(function (res) { @@ -330,7 +335,7 @@ bot.onText(/^\/mark_(\d+)_(\d+)_(\d+)|^\/mark_(\d+)_(\d+)/, function (msg, match val: `${match[4]}-${match[5]}` }; - r.db('lostfilm').table('users') + r.table('users') .get(msg.from.id) .then(function (res) { @@ -375,7 +380,7 @@ bot.onText(/^\/mark_(\d+)_(\d+)_(\d+)|^\/mark_(\d+)_(\d+)/, function (msg, match // Отмечает сериал как Избранный (или наоборот) через API Lostfilm. bot.onText(/^\/fav_(\d+)/, function (msg, match) { - r.db('lostfilm').table('users') + r.table('users') .get(msg.from.id) .then(function (res) { @@ -451,7 +456,7 @@ bot.onText(/^\/update/, async function () { body = fixId(body); - return r.db('lostfilm').table('serials') + return r.table('serials') .insert(body, {conflict: 'update'}); }) @@ -475,7 +480,7 @@ bot.onText(/^\/search|🔍Поиск/, function (msg) { else if (type === 'latin') type = 'title_orig'; - return r.db('lostfilm').table('serials').orderBy(type) + return r.table('serials').orderBy(type) .filter(function (serials) { return serials(type).match('(?i)' + text); }).limit(10); @@ -553,7 +558,7 @@ bot.onText(/^\/schedule|^\/myschedule|^Расписание|^Моё распис else if (match[0] === '/schedule' || match[0] === 'Расписание') base_url = 'https://www.lostfilm.tv/schedule/my_0/date_ru'; - r.db('lostfilm').table('users') + r.table('users') .get(msg.from.id) .then(function (res) { @@ -603,7 +608,7 @@ bot.onText(/^\/schedule|^\/myschedule|^Расписание|^Моё распис }; try { - const serial = await r.db('lostfilm').table('serials') + const serial = await r.table('serials') .filter({'title_orig': temp.title_orig}).nth(0); text += `${temp.title} (${temp.title_orig})\n${temp.num} ${temp.howLong} (${temp.date})\n/about_${serial.id} /full_${serial.id}\n\n` diff --git a/list.js b/list.js index d951613..4f1127c 100644 --- a/list.js +++ b/list.js @@ -56,7 +56,7 @@ module.exports = function () { // ОБНОВЛЯЕТ ВЕСЬ и отображает первую страницу личного /mylist bot.onText(/^\/mylist|^Избранное/, async function (msg) { - r.db('lostfilm').table('users') + r.table('users') .get(msg.from.id) .then(async function (res) { @@ -66,7 +66,7 @@ module.exports = function () { const url = 'https://www.lostfilm.tv'; j.setCookie(cookie, url); - r.db('lostfilm').table('users').get(msg.from.id) + r.table('users').get(msg.from.id) .update({ favorites: [] }) @@ -105,7 +105,7 @@ module.exports = function () { res = fixId(res); - return r.db('lostfilm').table('users').get(msg.from.id) + return r.table('users').get(msg.from.id) .update({ favorites: r.row('favorites').spliceAt(0, res) }); @@ -157,7 +157,7 @@ module.exports = function () { }); bot.onText(/^\/about_(.+)/, function (msg, match) { - r.db('lostfilm').table('serials') + r.table('serials') .get(parseInt(match[1])) .then(function (res) { @@ -180,7 +180,7 @@ module.exports = function () { const $ = res[1]; text += $('.text-block.description > .body').text(); - r.db('lostfilm').table('serials').get(parseInt(match[1])) + r.table('serials').get(parseInt(match[1])) .update({ description: text }) diff --git a/lists/about.js b/lists/about.js index 9a326d5..eb3f239 100644 --- a/lists/about.js +++ b/lists/about.js @@ -5,7 +5,7 @@ module.exports = { // Считает кол-во страниц для личного /about getPageCount: function (data) { return new Promise(function (resolve, reject) { - r.db('lostfilm').table('serials') + r.table('serials') .get(data.s) .then(function (res) { @@ -21,7 +21,7 @@ module.exports = { // Считает кол-во страниц для личного /about getPage: function (data) { return new Promise(function (resolve, reject) { - r.db('lostfilm').table('serials') + r.table('serials') .get(data.s) .then(function (res) { diff --git a/lists/main.js b/lists/main.js index f61f4a6..a513115 100644 --- a/lists/main.js +++ b/lists/main.js @@ -5,7 +5,7 @@ module.exports = { // Считает кол-во страниц для общего /list getPageCount: function() { return new Promise(function (resolve, reject) { - r.db('lostfilm').table('serials').count() + r.table('serials').count() .then(function (res) { resolve(Math.ceil(res / 10)); }) @@ -20,7 +20,7 @@ module.exports = { getPage: function(data) { return new Promise(function (resolve, reject) { const temp = data.p * 10; - r.db('lostfilm').table('serials') + r.table('serials') .orderBy(r.asc('title')) .slice(temp - 10, temp) diff --git a/lists/personal.js b/lists/personal.js index 01db902..df69218 100644 --- a/lists/personal.js +++ b/lists/personal.js @@ -5,7 +5,7 @@ module.exports = { // Считает кол-во страниц для личного /mylist getPageCount: function (from_id) { return new Promise(function (resolve, reject) { - r.db('lostfilm').table('users') + r.table('users') .get(from_id)('favorites').count() .then(function (res) { @@ -22,7 +22,7 @@ module.exports = { getPage: function (data, from_id) { return new Promise(function (resolve, reject) { const temp = data.p * 10; - r.db('lostfilm').table('users') + r.table('users') .get(from_id)('favorites') .orderBy(r.asc('title')) .slice(temp - 10, temp) diff --git a/lists/seasons.js b/lists/seasons.js index ec77727..697a4d8 100644 --- a/lists/seasons.js +++ b/lists/seasons.js @@ -5,7 +5,7 @@ module.exports = { // Считает кол-во сезонов в одном сериале getPageCount: function (data) { return new Promise(function (resolve, reject) { - r.db('lostfilm').table('serials') + r.table('serials') .get(data.s) .then(function (serial) { @@ -34,7 +34,7 @@ module.exports = { let text = ''; return new Promise(function(resolve, reject) { - r.db('lostfilm').table('serials') + r.table('serials') .get(data.s) .then(function (serial) { diff --git a/push.js b/push.js index 01cd3b8..b2cf6ee 100644 --- a/push.js +++ b/push.js @@ -65,7 +65,7 @@ module.exports = function () { // Делаем запрос в базу с фильтром по названию, // чтобы узнать ID фильма. Узкое место: // Мы предполагаем, что фильм с таким название только ОДИН - r.db('lostfilm').table('serials') + r.table('serials') .filter({'title_orig': title}) .then(function (res) { @@ -92,7 +92,7 @@ module.exports = function () { date: new Date(hashCode(title + res[0].id + parseInt(num[1]))) }; - return r.db('lostfilm').table('feed') + return r.table('feed') .insert(series); } }) @@ -124,14 +124,14 @@ module.exports = function () { setInterval(fetch, 1000 * 60 * 3); - r.db('lostfilm').table('feed').changes() + r.table('feed').changes() .then(function (cursor) { cursor.each(function(err, row) { if (err) reject(err); if (row.new_val !== null) { const id = row.new_val.id; - r.db('lostfilm').table('users') + r.table('users') .filter(function (user) { return user('favorites').contains(function (fav) { return fav('id').eq(id) @@ -145,7 +145,6 @@ module.exports = function () { serial: id }; - console.log(res); for (let i in res.users) { if (res.users.hasOwnProperty(i)) { const serial = R.find(R.propEq('id', res.serial))(res.users[i].favorites);