Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- const token = '799644371:AAGth5Y8W_Yh8ehILlI9OrqgVlRp0phCp9E';
- const Agent = require('socks5-https-client/lib/Agent');
- const TelegramBot = require('node-telegram-bot-api');
- const low = require('lowdb');
- const FileSync = require('lowdb/adapters/FileSync');
- const adapter = new FileSync('db.json');
- const db = low(adapter);
- const fs = require('fs');
- const csv = require('csvtojson')
- const download = require('download');
- var request = require('request')
- var r = request.defaults({'proxy': 'http://doctordoctorwhu:G3j1ZpU@185.231.244.83:65233'})
- //download('unicorn.com/foo.jpg').pipe(fs.createWriteStream('dist/foo.jpg'),{proxy:'doctordoctorwhu:G3j1ZpU@185.231.244.83:65233'});
- //const shortid = require('shortid');
- db.defaults({users: [], anketus: []})
- .write();
- //db.get('users').push()
- var user = function () {
- this.id = 0;
- this.name = '';//Имя или Организация
- this.for_courousel = []; //Для гугла карусели
- this.shown_ankets = [];//просмотренные анкеты
- this.messages = [];
- this.history = {};
- this.search_index = 0;
- this.patch = [];
- this.buyers = []; //человек и анкета (айди) для продавцов
- this.order_id = -1;
- this.history_for_messages = 0;
- };
- function get_users_count() {
- return db.get('users').size().value() + 1;
- }
- var anketu = {
- id: 0,
- order_guys: [], //список претендующих (их айди)
- closed: false, //обозначает закрыта или нет.
- description: '',
- photos: [], //патчи на фоточки
- address: []
- };
- function is_user_exist(quest_id) {
- return !!db.get('users').find({id: quest_id}).value();
- }
- function get_user(quest_id) {
- return db.get('users').find({id: quest_id}).value();
- }
- const bot = new TelegramBot(token, {
- polling: true,
- request: {
- agentClass: Agent,
- agentOptions: {
- socksHost: '185.231.244.83',
- socksPort: parseInt('65234'),
- // If authorization is needed:
- socksUsername: 'doctordoctorwhu',
- socksPassword: 'G3j1ZpU'
- }
- }
- });
- // Matches "/echo [whatever]"
- bot.onText(/\/echo (.+)/, (msg, match) => {
- // 'msg' is the received Message from Telegram
- // 'match' is the result of executing the regexp above on the text content
- // of the message
- const chatId = msg.chat.id;
- const resp = match[1]; // the captured "whatever"
- // send back the matched "whatever" to the chat
- bot.sendMessage(chatId, resp);
- });
- bot.onText(/\/start/, (msg) => {
- start(msg.chat.id);
- //const buffer = fs.readFileSync('D:/Projects/Moor/app/src/node_code/Hans Zimmer - Kung Fu Panda 3 - Po Belongs.mp3');
- //const stream = fs.createReadStream('D:/Projects/Moor/app/src/node_code/Hans Zimmer - Kung Fu Panda 3 - Po Belongs.mp3');
- //.sendAudio(msg.chat.id, buffer);
- });
- bot.on('callback_query', function (msg) {
- switch (msg.data) {
- case 'need_pet':
- var options_search = {
- reply_markup: JSON.stringify({
- inline_keyboard: [
- [{text: 'Ищу по фотке', callback_data: 'search_by_photo'}],
- [{text: 'Ищу по описанию', callback_data: 'search_by_text'}],
- [{text: 'Аля-тиндер', callback_data: 'search_by_tinder'}],
- ]
- })
- };
- console.log("DDS");
- bot.sendMessage(msg.from.id, "Как вы хотите искать?", options_search);
- break;
- case 'want_to_give':
- console.log('kokokko');
- bot.sendMessage(msg.from.id, "Киньте текст");
- db.get('users').find({id: msg.from.id}).assign({'history_for_messages': 2}).write();
- break;
- case 'end_of_photo':
- db.get('users').find({id: msg.from.id}).assign({'history_for_messages': 0}).write();
- var anketa = db.get('users').find({id: msg.from.id}).value().last_unketa;
- var photos = db.get('anketus').find({id: anketa}).value().photos;
- var descr = db.get('anketus').find({id: anketa}).value().description;
- db.get('users').find({id: msg.from.id}).assign({'last_unketa': -1}).write();
- bot.sendMessage(msg.from.id, "Вау! Круто! Анкета заполнена, вот как она выглядит");
- //const stream = fs.createReadStream(photos[0]);
- var last_file = [];
- for (var i = 0; i < photos.length; i++) {
- last_file.push({type: 'photo', media: fs.readFileSync(photos[i])})
- }
- bot.sendMediaGroup(msg.from.id, last_file);
- bot.sendMessage(msg.from.id, 'Описание: \n' + descr);
- break;
- case 'search_by_photo':
- bot.sendMessage(msg.from.id, "Скиньте фото, нравящегося вам питомца");
- db.get('users').find({id: msg.from.id}).assign({'history_for_messages': 4}).write();
- break;
- case 'search_by_text':
- bot.sendMessage(msg.from.id, "Введите описание");
- db.get('users').find({id: msg.from.id}).assign({'history_for_messages': 5}).write();
- break;
- case 'search_by_tinder':
- var anketes = db.get('anketus').value();
- var index = db.get('users').find({id: msg.from.id}).value().search_index;
- var left_right = {
- reply_markup: JSON.stringify({
- inline_keyboard: [
- [{text: 'Выбираю', callback_data: 'tinder_choose'}],
- [{text: 'Поехали дальше', callback_data: 'tinder_right'}],
- ]
- })
- };
- bot.sendPhoto(msg.from.id, fs.readFileSync(anketes[index].photos[0]), left_right);
- break;
- case 'tinder_right':
- var index = db.get('users').find({id: msg.from.id}).value().search_index;
- index += 1;
- db.get('users').find({id: msg.from.id}).assign({search_index:index}).write();
- var left_right = {
- reply_markup: JSON.stringify({
- inline_keyboard: [
- [{text: 'Выбираю', callback_data: 'tinder_choose'}],
- [{text: 'Поехали дальше', callback_data: 'tinder_right'}],
- ]
- })
- };
- bot.sendPhoto(msg.from.id, fs.readFileSync(anketes[index].photos[0]), left_right);
- break;
- case 'tinder_choose':
- break;
- }
- });
- function start(id) {
- if (!is_user_exist(id)) {
- bot.sendMessage(id, "Добро пожаловать! ");
- bot.sendMessage(id, "Я тут порылся в базе данных и осознал, что вы здесь впервые. Пожалуйста, назовите себя. Можете исопльзовать наименование физ или юр лица.");
- var new_user = new user;
- console.log(new_user);
- new_user.id = id;
- new_user.history_for_messages = 1;
- db.get('users').push(new_user)
- .write();
- } else {
- bot.sendMessage(id, "Добро пожаловать, " + get_user(id).name);
- var start_options = {
- reply_markup: JSON.stringify({
- inline_keyboard: [
- [{text: 'Ищу питомца', callback_data: 'need_pet'}],
- [{text: 'Хочу отдать питомца', callback_data: 'want_to_give'}],
- ]
- })
- };
- bot.sendMessage(id, "Зачем ты здесь ?", start_options);
- }
- }
- bot.on('message', (msg) => {
- const chatId = msg.chat.id;
- console.log(chatId);
- if (is_user_exist(chatId)) {
- switch (get_user(chatId).history_for_messages) {
- case 1:
- console.log(msg.text);
- db.get('users').find({id: chatId}).assign({'name': msg.text}).write();
- var start_options = {
- reply_markup: JSON.stringify({
- inline_keyboard: [
- [{text: 'Ищу питомца', callback_data: 'need_pet'}],
- [{text: 'Хочу отдать питомца', callback_data: 'want_to_give'}],
- ]
- })
- };
- db.get('users').find({id: chatId}).assign({'history_for_messages': 0}).write();
- bot.sendMessage(chatId, "Зачем ты здесь ?", start_options);
- break;
- case 2:
- var new_anketa = Object.assign({}, anketu);
- new_anketa.id = db.get('anketus').size().value() + 1;
- new_anketa.description = msg.text;
- db.get('anketus').push(new_anketa).write();
- db.get('users').find({id: chatId}).assign({'history_for_messages': 3}).write();
- bot.sendMessage(chatId, "Время настало для фоток");
- break;
- case 3:
- console.log(msg);
- //console.log(msg.photo[msg.photo.length - 1]);
- mkdirp.sync('photos/' + msg.from.id + '/');
- var dstring = `https://api.telegram.org/bot` + token + `/getFile?file_id=` + msg.photo[msg.photo.length - 1].file_id;
- console.log(dstring);
- var patch_photo = 'photos/' + msg.from.id + '/' + msg.photo[msg.photo.length - 1].file_id + '.jpg';
- var parent_photo = 'photos/' + msg.from.id + '/';
- r(dstring, function (error, response, body) {
- console.log('error:', error); // Print the error if one occurred
- console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
- console.log('body:', body); // Print the HTML for the Google homepage.
- var down_string = `https://api.telegram.org/file/bot` + token + `/` + JSON.parse(body).result.file_path;
- var anketa_id = db.get('users').find({id: msg.from.id}).value().last_unketa;
- console.log(phots);
- var phots = db.get('anketus').find({id: anketa_id}).value().photos;
- console.log('anketa_1 ' + anketa_id);
- console.log(phots);
- phots.push(patch_photo);
- db.get('anketus').find({id: anketa_id}).assign({'photos': phots}).write();
- console.log(down_string)
- download(down_string, parent_photo, {
- proxy: 'http://doctordoctorwhu:G3j1ZpU@185.231.244.83:65233',
- filename: msg.photo[msg.photo.length - 1].file_id + '.jpg'
- }).then(data => {
- if (data) {
- var end_of_photo = {
- reply_markup: JSON.stringify({
- inline_keyboard: [
- [{text: 'Да, закончил', callback_data: 'end_of_photo'}],
- [{text: 'Нет, будут ещё', callback_data: '_'}],
- ]
- })
- };
- bot.sendMessage(msg.from.id, 'Фотография загружена. будут ещё фотографии ?', end_of_photo)
- }
- });
- //download(down_string,).pipe(fs.createWriteStream(patch_photo));
- });
- //download(dstring).pipe(fs.createWriteStream('photos/'+msg.from.id+'/'+msg.photo[msg.photo.length-1].file_id+'.jpg'),{proxy:'doctordoctorwhu:G3j1ZpU@185.231.244.83:65233'});
- break;
- case 4:
- console.log(msg.photo[msg.photo.length - 1]);
- break;
- case 5:
- console.log(msg.text);
- request({url: 'http://127.0.0.1:5000/', qs: {name: msg.text}}, function (err, resp, body) {
- console.log(err);
- console.log(body);
- csv()
- .fromFile('train.csv')
- .then((jsonObj) => {
- console.log(jsonObj);
- console.log(jsonObj[JSON.parse(body).id]);
- console.log(jsonObj[JSON.parse(body).id].PetID);
- bot.sendMessage(chatId, jsonObj[JSON.parse(body).id].toString());
- bot.sendPhoto(chatId, fs.readFileSync('train_images/' + jsonObj[JSON.parse(body).id].PetID + '-1.jpg'));
- bot.sendPhoto(chatId, fs.readFileSync('train_images/' + jsonObj[JSON.parse(body).id].PetID + '-2.jpg'));
- bot.sendPhoto(chatId, fs.readFileSync('train_images/' + jsonObj[JSON.parse(body).id].PetID + '-3.jpg'));
- /**
- * [
- * {a:"1", b:"2", c:"3"},
- * {a:"4", b:"5". c:"6"}
- * ]
- */
- })
- });
- break;
- }
- }
- // send a message to the chat acknowledging receipt of their message
- }) //bot.sendMessage(chatId, 'Received your message');
- console.log('launched');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement