Skip to content

Commit

Permalink
1.1: Schedule, Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
savely-krasovsky committed May 17, 2017
1 parent 0cfd1e8 commit 97c3650
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 29 deletions.
27 changes: 16 additions & 11 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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');

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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'});
})

Expand All @@ -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);
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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} <i>(${temp.date})</i>\n/about_${serial.id} /full_${serial.id}\n\n`
Expand Down
10 changes: 5 additions & 5 deletions list.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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: []
})
Expand Down Expand Up @@ -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)
});
Expand Down Expand Up @@ -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) {
Expand All @@ -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
})
Expand Down
4 changes: 2 additions & 2 deletions lists/about.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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) {
Expand Down
4 changes: 2 additions & 2 deletions lists/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -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));
})
Expand All @@ -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)

Expand Down
4 changes: 2 additions & 2 deletions lists/personal.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions lists/seasons.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down
9 changes: 4 additions & 5 deletions push.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ module.exports = function () {
// Делаем запрос в базу с фильтром по названию,
// чтобы узнать ID фильма. Узкое место:
// Мы предполагаем, что фильм с таким название только ОДИН
r.db('lostfilm').table('serials')
r.table('serials')
.filter({'title_orig': title})

.then(function (res) {
Expand All @@ -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);
}
})
Expand Down Expand Up @@ -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)
Expand All @@ -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);
Expand Down

0 comments on commit 97c3650

Please sign in to comment.