vk-to-telegram
Advanced tools
Comparing version 0.2.9 to 0.3.0
13
index.js
@@ -38,9 +38,8 @@ const forwarder = require('./lib/forwarder') | ||
let body | ||
const request = (() => { | ||
if (ctx.request) { | ||
return ctx.request | ||
} else { | ||
return ctx | ||
} | ||
})() | ||
let request | ||
if (ctx.request) { | ||
request = ctx.request | ||
} else { | ||
request = ctx | ||
} | ||
const callback = async data => { | ||
@@ -47,0 +46,0 @@ if (ctx.request) { |
const puppeteer = require('puppeteer') | ||
const EventEmitter = require('./event') | ||
const events = new EventEmitter() | ||
// work in progress | ||
module.exports = { | ||
/** | ||
* get Audio List | ||
* @param {String[]} audioList | ||
*/ | ||
getAudios(audioList) { | ||
return new Promise((resolve, reject) => { | ||
events.emit('audioData', audioList, (err, result) => err ? reject(err) : resolve(result)) | ||
}) | ||
}, | ||
audioData (url) { | ||
return new Promise((resolve, reject) => { | ||
events.emit('audioDowndload', url, (err, result) => err ? reject(err) : resolve(result)) | ||
}) | ||
} | ||
/** | ||
* get Audio List | ||
* @param {String[]} audioList | ||
*/ | ||
getAudios (audioList) { | ||
return new Promise((resolve, reject) => { | ||
events.emit('audioData', audioList, (err, result) => err ? reject(err) : resolve(result)) | ||
}) | ||
}, | ||
audioData (url) { | ||
return new Promise((resolve, reject) => { | ||
events.emit('audioDowndload', url, (err, result) => err ? reject(err) : resolve(result)) | ||
}) | ||
} | ||
} | ||
async function start () { | ||
const browser = await puppeteer.launch({ | ||
headless: false, | ||
args: ['--no-sandbox', '--disable-setuid-sandbox', '--profile-directory="Default"'] | ||
}) | ||
const page = await browser.newPage() | ||
await page.goto('https://datmusic.xyz', { | ||
timeout: 5000, | ||
waitUntil: 'domcontentloaded', | ||
}) | ||
await page.waitForSelector('#result > div.list-group') | ||
events.on('audioData', async (audios, callback) => { | ||
const result = [] | ||
for (let i = 0; i < audios.length; i++) { | ||
let audioData | ||
try { | ||
audioData = await page.evaluate((audio) => { | ||
return fetch(`https://api-2.datmusic.xyz/search?q=${audio}`).then(response => response.json()) | ||
}, audios[i]) | ||
} catch (e) { | ||
return callback(e) | ||
} | ||
result.push(audioData.data[0]) | ||
} | ||
callback(null, result) | ||
}) | ||
// events.on('audioDowndload', async (audio, callback) => { | ||
// const page = await browser.newPage() | ||
// console.log(audio) | ||
// try { | ||
// await page.goto(audio) | ||
// } catch (e) { | ||
// return callback(e) | ||
// } | ||
// return callback(null, audioBuffer) | ||
const browser = await puppeteer.launch({ | ||
headless: false, | ||
args: ['--no-sandbox', '--disable-setuid-sandbox', '--profile-directory="Default"'] | ||
}) | ||
const page = await browser.newPage() | ||
await page.goto('https://datmusic.xyz', { | ||
timeout: 5000, | ||
waitUntil: 'domcontentloaded', | ||
}) | ||
await page.waitForSelector('#result > div.list-group') | ||
events.on('audioData', async (audios, callback) => { | ||
const result = [] | ||
for (let i = 0; i < audios.length; i++) { | ||
let audioData | ||
try { | ||
audioData = await page.evaluate((audio) => { | ||
return fetch(`https://api-2.datmusic.xyz/search?q=${audio}`).then(response => response.json()) | ||
}, audios[i]) | ||
} catch (e) { | ||
return callback(e) | ||
} | ||
result.push(audioData.data[0]) | ||
} | ||
callback(null, result) | ||
}) | ||
// events.on('audioDowndload', async (audio, callback) => { | ||
// const page = await browser.newPage() | ||
// console.log(audio) | ||
// try { | ||
// await page.goto(audio) | ||
// } catch (e) { | ||
// return callback(e) | ||
// } | ||
// return callback(null, audioBuffer) | ||
// }) | ||
// }) | ||
} | ||
start() |
@@ -1,2 +0,2 @@ | ||
const Telegram = require('telegraf/telegram') | ||
const { Telegram } = require('telegraf') | ||
const utils = require('./utils') | ||
@@ -94,5 +94,3 @@ const defaultConfig = require('./default-config') | ||
type: 'photo', | ||
media: { | ||
url: utils.photo.getHQ(attachment.photo) | ||
}, | ||
media: utils.photo.getHQ(attachment.photo), | ||
caption: mediaText, | ||
@@ -103,3 +101,2 @@ parse_mode: 'HTML' | ||
} | ||
console.log(attachmentsArray) | ||
if (messageExtra.reply_markup.inline_keyboard.length > 0) { | ||
@@ -118,5 +115,3 @@ let attachmentsExtraText = messageExtra.reply_markup.inline_keyboard.map(el => el.text) | ||
type: 'photo', | ||
post: { | ||
url: utils.photo.getHQ(attachment.album.thumb) | ||
}, | ||
media: utils.photo.getHQ(attachment.album.thumb), | ||
caption: `<a href="https://vk.com/album${attachment.album.owner_id}_${attachment.album.id}">${decode(attachment.album.title)}</a>`, | ||
@@ -150,5 +145,3 @@ parse_mode: 'HTML' | ||
type: 'photo', | ||
media: { | ||
url: utils.photo.getHQ(attachments[i].photo) | ||
}, | ||
media: utils.photo.getHQ(attachments[i].photo), | ||
caption: attachments[i].photo.text.length < 1000 ? decode(attachments[i].photo.text) : '', | ||
@@ -159,3 +152,2 @@ parse_mode: 'HTML' | ||
} | ||
console.log(photosArray) | ||
if (photosArray.length === 1) { | ||
@@ -162,0 +154,0 @@ messages.push(await telegram.sendPhoto(chatId, photosArray[0].media.url, mediaExtra)) |
@@ -5,4 +5,4 @@ const Telegram = require('telegraf/telegram') | ||
const vkApi = require('./vkapi') | ||
const Entities = require('html-entities').AllHtmlEntities | ||
const { decode } = new Entities() | ||
const { AllHtmlEntities } = require('html-entities') | ||
const { decode } = new AllHtmlEntities() | ||
module.exports = ({ token, vkToken, chatId }) => { | ||
@@ -23,7 +23,7 @@ const telegram = new Telegram(token) | ||
if (!text) { | ||
messages.push(await telegram.sendAnimation(chatId, { url: doc.preview.video.src, filename: decode(doc.title) }, extra)) | ||
messages.push(await telegram.sendAnimation(chatId, doc.preview.video.src, extra)) | ||
} else if (text && text.length < 1000) { | ||
extra.caption = `${text}\n\n<a href="${doc.url}">Open original</a>` | ||
extra.disable_web_page_preview = true | ||
messages.push(await telegram.sendAnimation(chatId, { url: doc.preview.video.src, filename: decode(doc.title) }, extra)) | ||
messages.push(await telegram.sendAnimation(chatId, doc.preview.video.src, extra)) | ||
} else { | ||
@@ -33,3 +33,3 @@ extra.disable_web_page_preview = false | ||
extra.caption = `<a href="${doc.url}">Open original</a>` | ||
messages.push(await telegram.sendAnimation(chatId, { url: doc.preview.video.src, filename: decode(doc.title) }, extra)) | ||
messages.push(await telegram.sendAnimation(chatId, doc.preview.video.src, extra)) | ||
} | ||
@@ -39,7 +39,7 @@ } else if (doc.ext === 'mp4' && doc.size < 50000000) { | ||
if (!text) { | ||
messages.push(await telegram.sendVideo(chatId, { url: doc.url, filename: decode(doc.title) }, extra)) | ||
messages.push(await telegram.sendVideo(chatId, doc.url, extra)) | ||
} else if (text && text.length < 1000) { | ||
extra.caption = `${text}\n\n<a href="${doc.url}">Open original</a>` | ||
extra.disable_web_page_preview = true | ||
messages.push(await telegram.sendVideo(chatId, { url: doc.url, filename: decode(doc.title) }, extra)) | ||
messages.push(await telegram.sendVideo(chatId, doc.url, extra)) | ||
} else { | ||
@@ -49,10 +49,10 @@ extra.disable_web_page_preview = false | ||
extra.caption = `<a href="${doc.url}">Open original</a>` | ||
messages.push(await telegram.sendVideo(chatId, { url: doc.url, filename: decode(doc.title) }, extra)) | ||
messages.push(await telegram.sendVideo(chatId, doc.url, extra)) | ||
} | ||
} else if (doc.size < 50000000) { | ||
if (!text) { | ||
messages.push(await telegram.sendDocument(chatId, { url: doc.url, filename: decode(doc.title) }, extra)) | ||
messages.push(await telegram.sendDocument(chatId, doc.url, extra)) | ||
} else if (text && text.length < 1000) { | ||
extra.caption = text | ||
messages.push(await telegram.sendDocument(chatId, { url: doc.url, filename: decode(doc.title) }, extra)) | ||
messages.push(await telegram.sendDocument(chatId, doc.url, extra)) | ||
} else { | ||
@@ -62,3 +62,3 @@ extra.disable_web_page_preview = false | ||
extra.disable_web_page_preview = true | ||
messages.push(await telegram.sendDocument(chatId, { url: doc.url, filename: decode(doc.title) }, extra)) | ||
messages.push(await telegram.sendDocument(chatId, doc.url, extra)) | ||
} | ||
@@ -65,0 +65,0 @@ } else { |
{ | ||
"name": "vk-to-telegram", | ||
"version": "0.2.9", | ||
"version": "0.3.0", | ||
"description": "Vk to telegram forwarder", | ||
@@ -26,3 +26,3 @@ "author": "ejnshtein", | ||
"html-entities": "^1.2.1", | ||
"telegraf": "^3.25.5", | ||
"telegraf": "^3.26.0", | ||
"telegram-typings": "^4.0.0-beta" | ||
@@ -29,0 +29,0 @@ }, |
14
test.js
@@ -15,9 +15,9 @@ const VkToTelegram = require('./') | ||
}) | ||
const Koa = require('koa') | ||
const bodyParser = require('koa-bodyparser') | ||
const app = new Koa() | ||
app.use(bodyParser()) | ||
app.use(async ctx => { | ||
console.log(ctx) | ||
VkToTg.send(ctx) | ||
const express = require('express') | ||
const bodyParser = require('body-parser') | ||
const app = express() | ||
app.use(bodyParser.json()) | ||
app.use((req, res) => { | ||
// console.log(req) | ||
VkToTg.send(req, res) | ||
.then(console.log) | ||
@@ -24,0 +24,0 @@ .catch(err => { |
@@ -11,3 +11,3 @@ /// <reference types="node" /> | ||
*/ | ||
send(req: IncomingMessage, res?: ServerResponse): Promise<ResponseMessage[]> | ||
send(req: IncomingMessage, res?: ServerResponse): Promise<Array<ResponseMessage>> | ||
} | ||
@@ -14,0 +14,0 @@ export interface ForwarderOptions { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
41238
930
Updatedtelegraf@^3.26.0