loads of updates
This commit is contained in:
parent
892193b7cc
commit
63054a2a1d
4
.vscode/launch.json
vendored
4
.vscode/launch.json
vendored
@ -7,11 +7,11 @@
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Launch Program",
|
||||
"name": "App",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"program": "${workspaceFolder}\\app.js"
|
||||
"program": "${workspaceFolder}/app.js",
|
||||
}
|
||||
]
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
docker stop bobbytviptv_suzie &&\
|
||||
docker rm --force bobbytviptv_suzie &&\
|
||||
docker build -t bobbytviptv_suzie . &&\
|
||||
docker run -v ${PWD}/logs:/usr/src/app/logs -d --name bobbytviptv_suzie bobbytviptv_suzie:latest
|
||||
docker run -v ${PWD}/logs:/usr/src/app/logs -p 5000:5000 -d --restart unless-stopped --name bobbytviptv_suzie bobbytviptv_suzie:latest
|
77
app.js
77
app.js
@ -1,6 +1,30 @@
|
||||
require('dotenv').config();
|
||||
|
||||
const logger = require('perfect-logger');
|
||||
// import express from 'express';
|
||||
const express = require('express')
|
||||
const basicAuth = require('express-basic-auth')
|
||||
|
||||
const app = express();
|
||||
|
||||
let usersList = {
|
||||
"Sarah": "TEST",
|
||||
"Karl": "TEST"
|
||||
}
|
||||
const users = {
|
||||
users: usersList,
|
||||
challenge: true
|
||||
}
|
||||
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded({ extended: false }));
|
||||
app.get('/', basicAuth(users), (req, res) => {
|
||||
return res.send('Received a GET HTTP method');
|
||||
});
|
||||
|
||||
app.listen(process.env.PORT, () =>
|
||||
console.log(`Example app listening on port ${process.env.PORT}!`),
|
||||
);
|
||||
|
||||
const token = process.env.BOT_TOKEN;
|
||||
const name = process.env.BOT_NAME;
|
||||
@ -22,6 +46,7 @@ const bot_welcome = require('./data/bot/functions/welcomeMesage')
|
||||
const bot_faq_whatAppToUse = require('./data/bot/functions/faq/whatAppToUse')
|
||||
const bot_faq_subscription = require('./data/bot/functions/faq/subscriptions')
|
||||
const bot_subStatus = require('./data/bot/functions/requests/updateSubStatus')
|
||||
const shortcuts = require('./data/bot/lib/shorcuts')
|
||||
|
||||
|
||||
let commands = require('./data/group/commands')
|
||||
@ -49,6 +74,10 @@ bot.on('message', (msg) => {
|
||||
requests.joke(bot, msg, logger)
|
||||
}
|
||||
|
||||
if (msg.text && msg.text.toString().includes("/updates_page")) {
|
||||
questions.updates_page(bot, msg, logger)
|
||||
}
|
||||
|
||||
if (msg.text && msg.text.toString() === "- What player for my sub?") {
|
||||
bot_faq_whatAppToUse.main(bot, msg, logger)
|
||||
}
|
||||
@ -79,4 +108,52 @@ bot.on('message', (msg) => {
|
||||
bot_subStatus.setSubStatus(bot, msg, logger)
|
||||
}
|
||||
|
||||
if (msg.text && msg.text.toString().includes("/maintenance")) {
|
||||
shortcuts.maintenance(bot, msg, logger)
|
||||
}
|
||||
|
||||
if (msg.text && msg.text.toString().includes("/unlinked_code")) {
|
||||
shortcuts.unlinked_code(bot, msg, logger)
|
||||
}
|
||||
|
||||
if (msg.text && msg.text.toString().includes("/vpn")) {
|
||||
shortcuts.vpn(bot, msg, logger)
|
||||
}
|
||||
|
||||
if (msg.text && msg.text.toString().includes("/installing_unlinked")) {
|
||||
shortcuts.installing_unlinked(bot, msg, logger)
|
||||
}
|
||||
if (msg.text && msg.text.toString().includes("/app_videos")) {
|
||||
shortcuts.app_videos(bot, msg, logger)
|
||||
}
|
||||
if (msg.text && msg.text.toString().includes("/webplayer")) {
|
||||
shortcuts.webplayer(bot, msg, logger)
|
||||
}
|
||||
if (msg.text && msg.text.toString().includes("/what_player_to_use")) {
|
||||
shortcuts.what_player_to_use(bot, msg, logger)
|
||||
}
|
||||
if (msg.text && msg.text.toString().includes("/plex")) {
|
||||
shortcuts.plex(bot, msg, logger)
|
||||
}
|
||||
if (msg.text && msg.text.toString().includes("/ios")) {
|
||||
shortcuts.ios(bot, msg, logger)
|
||||
}
|
||||
if (msg.text && msg.text.toString().includes("/android")) {
|
||||
shortcuts.android(bot, msg, logger)
|
||||
}
|
||||
if (msg.text && msg.text.toString().includes("/request_vod")) {
|
||||
shortcuts.vodReq(bot, msg, logger)
|
||||
}
|
||||
// if (msg.text && msg.text.toString().includes("/firesticks")) {
|
||||
// shortcuts.firesticks(bot, msg, logger)
|
||||
// }
|
||||
if (msg.text && msg.text.toString().includes("/sports")) {
|
||||
shortcuts.sports(bot, msg, logger)
|
||||
}
|
||||
if (msg.text && msg.text.toString().includes("/tv_today")) {
|
||||
requests.tv_today(bot, msg, logger)
|
||||
}
|
||||
if (msg.text && msg.text.toString().includes("/install_bob15")) {
|
||||
shortcuts.bob15(bot, msg, logger)
|
||||
}
|
||||
})
|
@ -1,5 +1,7 @@
|
||||
const fs = require('fs')
|
||||
const admins = JSON.parse(process.env.ADMIN_ID)
|
||||
const questions = require('../../lib/questions')
|
||||
|
||||
|
||||
module.exports = {
|
||||
setSubStatus: (bot, msg, logger, name) => {
|
||||
@ -21,6 +23,8 @@ module.exports = {
|
||||
// console.log(subs);
|
||||
fs.writeFileSync('./data/group/subs.json', JSON.stringify(subs))
|
||||
bot.sendMessage(msg.chat.id, sub + " sub updated")
|
||||
msg.chat.id = process.env.CHANNEL_ID
|
||||
questions.subStatus(bot, msg, logger, true)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@ const channel = process.env.CHANNEL
|
||||
module.exports = {
|
||||
welcomeMessage: (bot, msg, logger) => {
|
||||
const newUserMention = "<a href=\"tg:\/\/user?id=" + msg.new_chat_member.id + "\">@" + msg.new_chat_member.first_name + "<\/a>"
|
||||
bot.sendMessage(msg.chat.id, "Hello " + newUserMention + ", Welcome to " + channel + ". \n\nPlease PM me @" + process.env.BOT_USERNAME + " to find out all needed information about our service before asking an admin or posting in here.\n\nIf you do ask questions, and its obvious you have not spoken to me, Sarah will be very upset. This is IPTV, you need to be willing to learn a little bit about how everything works and how to fix and maintain your device in order to get the best from it.!!!", { parse_mode: "HTML" });
|
||||
bot.sendMessage(msg.chat.id, "Hello " + newUserMention + ", Welcome to " + channel + ". \n\nWe have many subscriptions on sale here. Please have a look at the content of all our room subs by <a href='https://t.me/c/1380372404/53456/53457'>PRESSING HERE</a>\n\n<a href='https://t.me/c/1380372404/53452/53454'>PRESS HERE</a> for the pricelist of those subs.\n\nIf you do have questions, please ask in here the general chat where you will be answered as quickly as possible. Please know that this is IPTV, which means you need to be willing to learn a little bit about how everything works and how to fix and maintain your device in order to get the best from it. Don't worry though because we have easy step by step posters and help videos for everything you will need.!!!", { parse_mode: "HTML" });
|
||||
logger.info("ID - " + msg.new_chat_member.id + " First Name - " + msg.new_chat_member.first_name + " joined the group");
|
||||
}
|
||||
};
|
@ -37,7 +37,8 @@ module.exports = {
|
||||
parse_mode: "HTML",
|
||||
"reply_markup": {
|
||||
"keyboard": m
|
||||
}
|
||||
},
|
||||
disable_web_page_preview: true
|
||||
})
|
||||
}
|
||||
decache('../../group/commands');
|
||||
|
@ -13,7 +13,7 @@ module.exports = {
|
||||
bot.sendMessage(msg.chat.id, randomSub.SUB + "!");
|
||||
}
|
||||
},
|
||||
subStatus: (bot, msg, logger, name) => {
|
||||
subStatus: async (bot, msg, logger, notify = false) => {
|
||||
let subs = JSON.parse(fs.readFileSync('./data/group/subs.json', 'utf8'))
|
||||
|
||||
let string = ""
|
||||
@ -32,7 +32,15 @@ module.exports = {
|
||||
}
|
||||
});
|
||||
// console.log(string)
|
||||
bot.sendMessage(msg.chat.id, string, { parse_mode: "HTML" })
|
||||
data = await bot.sendMessage(msg.chat.id, string, { parse_mode: "HTML", disable_notification: notify })
|
||||
if (notify == true) {
|
||||
bot.pinChatMessage(process.env.CHANNEL_ID, data.message_id)
|
||||
}
|
||||
},
|
||||
updates_page: async (bot, msg, logger) => {
|
||||
|
||||
bot.sendMessage(msg.chat.id, `<a href='https://t.me/+Xr3cFsqJAVYwNTNk'>Bob15TV Updates page</a>`, { parse_mode: "HTML" })
|
||||
|
||||
},
|
||||
password: (bot, msg, match, logger) => {
|
||||
logger.info("ID - " + msg.from.id + " First Name - " + msg.from.first_name + " Asked for their password being spelt");
|
||||
|
@ -4,6 +4,8 @@ var throttledRequest = require('throttled-request')(request);
|
||||
throttledRequest.configure({ requests: 8, milliseconds: 60000 }); //send 1 request per second
|
||||
cachedRequest = require('cached-request')(throttledRequest);
|
||||
cachedRequest.setCacheDirectory("./cache");
|
||||
var emoji = require('node-emoji')
|
||||
|
||||
|
||||
module.exports = {
|
||||
football_today: async (bot, msg, logger) => {
|
||||
@ -13,7 +15,9 @@ module.exports = {
|
||||
method: 'GET',
|
||||
url: 'https://football-pro.p.rapidapi.com/api/v2.0/livescores',
|
||||
// qs: { tz: 'Europe/London', leagues: '2,5,8,23,24,27,45,81,1326', include: 'localTeam,visitorTeam' },
|
||||
qs: { tz: 'Europe/London', leagues: '2,5,8', include: 'localTeam,visitorTeam' },
|
||||
// qs: { tz: 'Europe/London', leagues: '2,5,8,23,24,27,45,81,1326,501', include: 'localTeam,visitorTeam' },
|
||||
// qs: { tz: 'Europe/London', leagues: '2,5,8,23,24,27,501', include: 'localTeam,visitorTeam' }, // Champions Leage, Europa, Premier League, Community Shield, FA Cup, Carabo cup, Scottish
|
||||
qs: { tz: 'Europe/London', leagues: '2,5,8,23,501,732', include: 'localTeam,visitorTeam' }, // Champions Leage, Europa, Premier League, Community Shield, Scottish
|
||||
headers: {
|
||||
'x-rapidapi-host': 'football-pro.p.rapidapi.com',
|
||||
'x-rapidapi-key': process.env.RAPIDAPI_API_KEY,
|
||||
@ -21,7 +25,6 @@ module.exports = {
|
||||
},
|
||||
ttl: 18000000 //5 hours
|
||||
};
|
||||
|
||||
cachedRequest(options, async function (error, response, body) {
|
||||
if (error) throw new Error(error);
|
||||
let jsonBody = JSON.parse(body)
|
||||
@ -35,14 +38,10 @@ module.exports = {
|
||||
}
|
||||
|
||||
}).then(() => {
|
||||
return bot.sendMessage(msg.chat.id, `To see what channels the football is streaming on please join @FootballListings for free.
|
||||
|
||||
Or join @footballontv for a yearly membership fee.
|
||||
|
||||
Or type https://m.liveonsat.com/ into your browser.`)
|
||||
return bot.sendMessage(msg.chat.id, `To see what channels the football is streaming on goto post ${emoji.get('one')}${emoji.get('six')} in our updates page and join our football listings rooms.\n\n${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/308'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page.`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
})
|
||||
} else {
|
||||
bot.sendMessage(msg.chat.id, 'Sadly, there is no football I care about on today :(')
|
||||
bot.sendMessage(msg.chat.id, `Sadly, there is no football I care about on today ${emoji.get('cry')} but, Updates ${emoji.get('one')}${emoji.get('six')} <a href='https://t.me/c/1473840950/308'>HERE</a> also has telegram rooms for all other sports.`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
}
|
||||
})
|
||||
},
|
||||
@ -68,5 +67,85 @@ Or type https://m.liveonsat.com/ into your browser.`)
|
||||
bot.sendMessage(msg.chat.id, jsonBody.content)
|
||||
}
|
||||
)
|
||||
},
|
||||
|
||||
// get_all_pages: async () => {
|
||||
// full_list = []
|
||||
// pages = [1,2,3,4,5]
|
||||
|
||||
// for (let i = 1; i < pages.length; i++) {
|
||||
// var options = {
|
||||
// method: 'GET',
|
||||
// url: 'https://api.themoviedb.org/3/tv/airing_today?api_key=01fe1ed0ba2275d4a9ce618fbabdac92&language=en-GB&page=' + i,
|
||||
// ttl: 18000000 //5 hours
|
||||
// };
|
||||
// return new Promise(function (resolve, reject) {
|
||||
|
||||
// request(options, function (error, response, body) {
|
||||
// if (!error) {
|
||||
// // resolve(body);
|
||||
// full_list.push(JSON.parse(body))
|
||||
// resolve(full_list[0])
|
||||
// } else {
|
||||
// reject(error);
|
||||
// }
|
||||
// })
|
||||
// })
|
||||
// }
|
||||
|
||||
// },
|
||||
|
||||
api_call: async (currentPage) => {
|
||||
var options = {
|
||||
method: 'GET',
|
||||
url: 'https://api.themoviedb.org/3/tv/airing_today?api_key=01fe1ed0ba2275d4a9ce618fbabdac92&language=en-GB&page=' + currentPage,
|
||||
ttl: 18000000 //5 hours
|
||||
};
|
||||
return new Promise(function (resolve, reject) {
|
||||
request(options, function (error, response, body) {
|
||||
if (!error) {
|
||||
resolve(JSON.parse(body))
|
||||
} else {
|
||||
reject(error);
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
get_all_pages: async () => {
|
||||
let currentPage = 1;
|
||||
full_list = []
|
||||
while (currentPage <= 5) {
|
||||
a = await module.exports.api_call(currentPage);
|
||||
// let { data } = await module.exports.api_call(currentPage);
|
||||
full_list.push(a.results)
|
||||
currentPage++;
|
||||
}
|
||||
a = Array.prototype.concat.apply([], full_list)
|
||||
return a
|
||||
},
|
||||
tv_today: async (bot, msg, logger) => {
|
||||
logger.info("ID - " + msg.from.id + " First Name - " + msg.from.first_name + " asked for tv today");
|
||||
l = await module.exports.get_all_pages()
|
||||
if (l.length > 0) {
|
||||
bot.sendMessage(msg.chat.id, 'Yes there is!').then(async () => {
|
||||
a = []
|
||||
b = l.filter(s => { return s.origin_country[0] == 'GB' || s.origin_country[0] == 'US' })
|
||||
for (const x of b) {
|
||||
var showName = x.name
|
||||
a.push(showName)
|
||||
|
||||
}
|
||||
new_ms = a.join('\n')
|
||||
|
||||
await bot.sendMessage(msg.chat.id, new_ms, { parse_mode: "HTML" })
|
||||
}).then(() => {
|
||||
return bot.sendMessage(msg.chat.id, `Enjoy your TV Shows today!.`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
})
|
||||
} else {
|
||||
bot.sendMessage(msg.chat.id, `Sadly, there is no tv shows on I care about on today ${emoji.get('cry')}.`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
}
|
||||
}
|
||||
// bot.sendMessage(msg.chat.id, jsonBody.content)
|
||||
}
|
||||
|
52
data/bot/lib/shorcuts.js
Normal file
52
data/bot/lib/shorcuts.js
Normal file
@ -0,0 +1,52 @@
|
||||
|
||||
var request = require("request");
|
||||
var throttledRequest = require('throttled-request')(request);
|
||||
throttledRequest.configure({ requests: 8, milliseconds: 60000 }); //send 1 request per second
|
||||
cachedRequest = require('cached-request')(throttledRequest);
|
||||
cachedRequest.setCacheDirectory("./cache");
|
||||
var emoji = require('node-emoji')
|
||||
|
||||
module.exports = {
|
||||
maintenance: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('one')}${emoji.get('seven')} has everything you need to keep your device performing and provides help if you're having issues (green poster)\n\n${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/310'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
unlinked_code: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('one')}${emoji.get('four')}has our main unlinked code for all of our Bob15TV apps\n\n ${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/305'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
vpn: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('seven')} has everything you need to know on our Bob15TV VPN apps and also our apps that have built in VPN\n\n ${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/257'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
installing_unlinked: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('one')}${emoji.get('two')} shows you a step by step on how to add unlinked onto your devices\n\n ${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/300'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
app_videos: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('five')} is our app help room where we have step by step help videos for all of our room players.\n\n ${emoji.get('arrow_right')}<a href='https://t.me/+dvfsvjs1uVlmYWFk'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly there`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
webplayer: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('six')} has details of our Webplayer so that you can watch our subs on your PC/laptop\n\n ${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/250'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
what_player_to_use: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('eight')} is our poster showing you at a glance what apps you can have your Bob15TV sub/subs playing on.\n\n ${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/271'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
plex: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('two')}${emoji.get('four')} shows you how to add Plex to your device and everything else for best results.\n\n ${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/341'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
ios: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('one')}${emoji.get('nine')} shows you how to add all Bob15TV room subs onto your iPhone, iPad or directly onto your Apple TV.\n\n${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/315'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
android: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('two')}${emoji.get('zero')} shows you how to add all Bob15TV room subs onto your android phone or tablet.\n\n ${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/319'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
vodReq: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('two')}${emoji.get('three')} shows you how to request VOD on your sub.\n\n ${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/333'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
firesticks: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('two')}${emoji.get('five')} shows you help in maintaining and getting the best performance from your firestick.\n\n${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/344'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
sports: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('one')}${emoji.get('six')} has our very own telegram sports listing channels and available websites for you to use to find the channels your favourite sport is streaming on. Please join them.\n\n${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/308'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page.`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
},
|
||||
bob15: async (bot, msg, logger) => {
|
||||
bot.sendMessage(msg.chat.id, `Updates ${emoji.get('three')}${emoji.get('zero')} shows you a step by step on how to add our Bob15 apk onto your devices. This apk includes our huge collection of apps both for our room subs and miscellaneous extra apps.\n\n${emoji.get('arrow_right')}<a href='https://t.me/c/1473840950/356'>PRESS HERE</a>${emoji.get('arrow_left')} to go directly to post in updates page.`, { parse_mode: 'HTML', disable_web_page_preview: true })
|
||||
}
|
||||
}
|
@ -22,7 +22,7 @@ const chat = [
|
||||
"NAME": "- Home",
|
||||
"TEXT": [
|
||||
"Home",
|
||||
"Please only ask an Admin, if you can't find the answer here.."
|
||||
"Please ask your question in main Bob15TV chat, if you can't find the answer here.."
|
||||
],
|
||||
"MENU": '[["- FAQ", "- Hints & Tips"]]'
|
||||
},
|
||||
@ -30,7 +30,7 @@ const chat = [
|
||||
"NAME": "- FAQ",
|
||||
"TEXT": [
|
||||
"Frequently Asked Questions",
|
||||
"Please only ask an Admin, if you can't find the answer here.."
|
||||
"Please ask your question in main Bob15TV chat, if you can't find the answer here.."
|
||||
],
|
||||
"MENU": '[["- Subscriptions"],["- Apps"],["- Home"]]'
|
||||
},
|
||||
@ -60,7 +60,7 @@ const chat = [
|
||||
"TEXT": [
|
||||
"Apps FAQ"
|
||||
],
|
||||
"MENU": '[["- unlinked"],["- VPN (SurfShark)"],["- Home"]]'
|
||||
"MENU": '[["- unlinked"],["- VPN"],["- Home"]]'
|
||||
},
|
||||
{
|
||||
"NAME": "- How do I clear cache?",
|
||||
@ -84,7 +84,7 @@ const chat = [
|
||||
{
|
||||
"NAME": "- Do I need a VPN?",
|
||||
"TEXT": [
|
||||
"No, however sometimes you might need a VPN if your subscription isn't working at the time of use. This rarely happens and usually only when the Football is on because sometimes a sub may get blocked. If a sub ever needs a VPN I will supply you with a room VPN for free. You will connect using SurfShark and the log in details will be provided in the updates channel. DO NOT SHARE THESE DETAILS. BOB15TV CUSTOMERS ONLY.",
|
||||
"No, however sometimes you might need a VPN if your subscription isn't working at the time of use. This rarely happens and usually only when the Football is on because sometimes a sub may get blocked. If a sub ever needs a VPN you can connect to our room VPN which I supply to all Bob15TV customers for free. You will connect using any of our 7 xciptv based apps. Our Updates page, post 7 will explain more. We also have step by step help videos for all of our room apps. The link for this group is available in our Updates page, post 5. Please join the group. DO NOT SHARE OUR APPS WITH ANYONE. EVERYTHING IS FOR BOB15TV CUSTOMERS ONLY.",
|
||||
],
|
||||
"MENU": '[[]]'
|
||||
},
|
||||
@ -103,17 +103,17 @@ const chat = [
|
||||
"NAME": "- IPTV Guidance",
|
||||
"TEXT": [
|
||||
"🚨Basic IPTV Guidance🚨\n\nPlease see below some very basic IPTV guidance for those who are new to IPTV",
|
||||
"1. What is a sub? A sub is what provides you with your live tv and movies/VOD... They are called different names e.g. GOLD, PREMIUM, ETC... All offer very similar channels with the difference of VOD, Series and time and money spent on servers.",
|
||||
"1. What is a sub? A sub is what provides you with your live tv and movies/VOD... They are called different names e.g. GOLD, PREMIUM PLUS, ETC... All offer very similar channels with the difference of VOD, Series and time and money spent on servers.",
|
||||
"2. What is an APP? An app is something that you load your sub onto, and enables you to view the channels your sub provides.",
|
||||
"3. For flexibility and ease of use username and password subs are the only way to view your IPTV sub/subs with Bob15tv – All subs have their own dedicated apps and are available to download from my unlinked. I have at least three different apps available for every sub I sell in this room.",
|
||||
"4. Things you must know when using IPTV – How to refresh DNS – How to change your app player settings – How to change your app player to an external player – How to carry out basic but essential IPTV Maintenance."
|
||||
"3. For flexibility and ease of use username and password subs are the only way to view your IPTV sub/subs with Bob15tv – All subs have their own dedicated apps and are available to download from our unlinked or linktree rooms. There are about 10 different apps available for every sub sold in this room. Updates *8 for more info.",
|
||||
"4. Things you must know when using IPTV – How to refresh DNS (if using some players) – How to change your app player settings – How to change your app player to an external player – How to carry out basic but essential IPTV Maintenance. Updates *17 for more info."
|
||||
],
|
||||
"MENU": '[[]]'
|
||||
},
|
||||
{
|
||||
"NAME": "- Install unlinked on Android",
|
||||
"TEXT": [
|
||||
"Step 1: First thing you need to do is go to browser on your Android TV box and enter https://bit.ly/36qiJ0u",
|
||||
"Step 1: First thing you need to do is go to browser on your Android TV box and enter http://dl.unlinked.link",
|
||||
"Step 2: Allow file to download (you will see it downloading at bottom of your screen)",
|
||||
"Step 3: Once the apk has downloaded you can close the browser and go to your apps.",
|
||||
"Step 4: Then open file manager or file browser. In here go to downloads, filemanager, press install.",
|
||||
@ -128,9 +128,9 @@ const chat = [
|
||||
"TEXT": [
|
||||
"Step 1:\n\nGo to Settings > device/my fire tv > developer options > apps from unknown sources on",
|
||||
"Step 2: Download an app called downloader. (Orange icon)",
|
||||
"Step 3:\nOpen downloader and type in this address\nb.aftvnews.com and install\nNow go back to address bar and enter code 28369\nThen when it asks, install that app.",
|
||||
"Step 3:\nOpen downloader and type in this address\nb.aftvnews.com and install\nNow go back to address bar and enter code 40869\nThen when it asks, install that app.",
|
||||
"Step 4:\nPress and hold home and then click on “Apps” and scroll to the bottom and click on the very last app and open it (unlinked).",
|
||||
"Step 5: Enter the unlinked code from the Updates page to get the list of apps for your sub"
|
||||
"Step 5: Enter the unlinked code from the <a href='https://t.me/+Xr3cFsqJAVYwNTNk'>Updates page</a> to get the list of apps for your sub"
|
||||
],
|
||||
"MENU": '[[]]'
|
||||
},
|
||||
@ -138,8 +138,8 @@ const chat = [
|
||||
"NAME": "- Updates Group",
|
||||
"TEXT": [
|
||||
"The updates groups can be found here",
|
||||
"https://t.me/joinchat/AAAAAFfZBzZqyG3a7kU_ZA",
|
||||
"Please join for Bobby TV IPTV updates"
|
||||
"https://t.me/+Xr3cFsqJAVYwNTNk",
|
||||
"Please join for Bo15TV IPTV updates"
|
||||
],
|
||||
"MENU": '[[]]'
|
||||
},
|
||||
@ -170,17 +170,16 @@ const chat = [
|
||||
{
|
||||
"NAME": "- unlinked",
|
||||
"TEXT": [
|
||||
"We have a number of different applications that work with our subs, here is an overview of subs/apps colour coded by the icon in our unlinked",
|
||||
"We also have a room web player that you can watch your subs on http://webservgroup.xyz/playersmart/",
|
||||
"When you are in the bob15tv In unlinked room please look under each player to know what subs can be played on that particular player. Players will be added and deleted from our room unlinked regularly so do check in on the players we have available for your subs in our room unlinked on a regular basis.",
|
||||
"The current unlinked code is - " + process.env.unlinked_PIN + "\n\nYou can download all our players from there"
|
||||
"We have a number of different applications that work with our subs. Please go to our <a href='https://t.me/+Xr3cFsqJAVYwNTNk'>Updates page</a> and read post *8 for all apps available for each Bob15TV sub.",
|
||||
"Players change for some subs so do check in (* 8) on the players we have available for your subs on a regular basis.",
|
||||
"We also have a room web player that you can watch your subs on https://tinyurl.com/BOB15WEB please visit our updates page, post 6 for more info."
|
||||
],
|
||||
"MENU": '[["- Install unlinked on FireStick", "- Install unlinked on Android"],["- Home"]]'
|
||||
},
|
||||
{
|
||||
"NAME": "- VPN (SurfShark)",
|
||||
"NAME": "- VPN",
|
||||
"TEXT": [
|
||||
"SurfShark is the VPN that we advise you use on your device to bypass the blocks,\n\nYou can install this on your device from our unlinked\n\nWe provide a username and password for you to use in the updates groups. DO NOT SHARE THE DETAILS"
|
||||
"Here at Bob15TV we have provide our own VPN to all customers for free.\n\nTo connect to our VPN simply use the built in VPN on some of our room apps.\n\nVPNis rarely ever needed on any of our room subs. If it is needed it will be during the EPL and will only be needed for people in the UK.\n\nIf you have your own VPN please feel free to use it instead.\n\nNB: our VPN is only for Bob15TV customers. Please don't share our apps with others otherwise you may lose it altogether."
|
||||
],
|
||||
"MENU": '[[]]'
|
||||
},
|
||||
@ -188,8 +187,9 @@ const chat = [
|
||||
"NAME": "- What IS my password?",
|
||||
"TEXT": [
|
||||
"If you want to know what your password is (sometimes its hard working out 0 and O) you can ask me in this chat by copying and pasting the password you received from Sarah",
|
||||
"/password CopyAndPasteYourPasswordHere",
|
||||
"/password PasteYourPasswordHere",
|
||||
"I will send you back a phonetic spelling of your password, don't worry, I dont' save it.",
|
||||
"Or you can also copy the password given to you by Sarah, go to the <a href='https://t.me/+Xr3cFsqJAVYwNTNk'>Updates page</a> (*3). Click on the link and then paste it to reveal the correct details you will need to enter in order for your sub to work."
|
||||
],
|
||||
"MENU": '[[]]'
|
||||
},
|
||||
|
@ -1,13 +1,25 @@
|
||||
[
|
||||
{
|
||||
"SUB": "Insanity",
|
||||
"SUB": "Graphite",
|
||||
"COST": 0,
|
||||
"STATUS": 1,
|
||||
"IMAGE": "./data/group/Insanity.jpg",
|
||||
"IMAGE": "./data/group/Carbon.jpg",
|
||||
"APPS": [
|
||||
"Xciptv 3.2.2",
|
||||
"Stb log in",
|
||||
"Perfect Player"
|
||||
"White&Black IM",
|
||||
"Green SMARTERS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Titanium",
|
||||
"COST": 0,
|
||||
"STATUS": 1,
|
||||
"IMAGE": "./data/group/Premium_Plus.jpg",
|
||||
"APPS": [
|
||||
"Blue XCIPTV",
|
||||
"Yellow Sky Q",
|
||||
"Purple IM",
|
||||
"Green SMARTERS",
|
||||
"Tivimate Orange"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -24,33 +36,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Premium Plus",
|
||||
"COST": 0,
|
||||
"STATUS": 1,
|
||||
"IMAGE": "./data/group/Premium_Plus.jpg",
|
||||
"APPS": [
|
||||
"Blue XCIPTV",
|
||||
"Yellow Sky Q",
|
||||
"Purple IM",
|
||||
"Green SMARTERS",
|
||||
"Tivimate Orange"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Premium",
|
||||
"COST": 0,
|
||||
"STATUS": 1,
|
||||
"IMAGE": "./data/group/Premium.jpg",
|
||||
"APPS": [
|
||||
"Blue XCIPTV",
|
||||
"Yellow Sky Q",
|
||||
"Purple IM",
|
||||
"Green SMARTERS",
|
||||
"Tivimate Orange"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Gold",
|
||||
"SUB": "Iolite",
|
||||
"COST": 0,
|
||||
"STATUS": 1,
|
||||
"IMAGE": "./data/group/Gold.jpg",
|
||||
@ -74,10 +60,75 @@
|
||||
"Tivimate Orange"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Sapphire",
|
||||
"COST": 0,
|
||||
"STATUS": 1,
|
||||
"IMAGE": "./data/group/Sapphire.jpg",
|
||||
"APPS": [
|
||||
"Red XCIPTV",
|
||||
"Yellow Sky Q",
|
||||
"Purple IM",
|
||||
"Green SMARTERS",
|
||||
"Tivimate Orange"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Ammolite",
|
||||
"COST": 10,
|
||||
"STATUS": 1,
|
||||
"APPS": [
|
||||
"VOD App"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Emerald",
|
||||
"COST": 10,
|
||||
"STATUS": 1,
|
||||
"APPS": [
|
||||
"VOD App"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Nitrogen",
|
||||
"COST": 0,
|
||||
"STATUS": 1,
|
||||
"IMAGE": "./data/group/Topaz.jpg",
|
||||
"APPS": [
|
||||
"Red XCIPTV",
|
||||
"Yellow Sky Q",
|
||||
"Purple IM",
|
||||
"Green SMARTERS",
|
||||
"Tivimate Orange"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Carbon",
|
||||
"COST": "X",
|
||||
"STATUS": "X",
|
||||
"IMAGE": "./data/group/Carbon.jpg",
|
||||
"APPS": [
|
||||
"White&Black IM",
|
||||
"Green SMARTERS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Premium",
|
||||
"COST": "X",
|
||||
"STATUS": "X",
|
||||
"IMAGE": "./data/group/Premium.jpg",
|
||||
"APPS": [
|
||||
"Blue XCIPTV",
|
||||
"Yellow Sky Q",
|
||||
"Purple IM",
|
||||
"Green SMARTERS",
|
||||
"Tivimate Orange"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Bronze",
|
||||
"COST": "X",
|
||||
"STATUS": 1,
|
||||
"STATUS": "X",
|
||||
"IMAGE": "X",
|
||||
"APPS": [
|
||||
"Red XCIPTV",
|
||||
@ -87,7 +138,23 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Gunslinger",
|
||||
"SUB": "Silver VOD",
|
||||
"COST": "X",
|
||||
"STATUS": "X",
|
||||
"APPS": [
|
||||
"VOD App"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Opal",
|
||||
"COST": 0,
|
||||
"STATUS": 1,
|
||||
"APPS": [
|
||||
"VOD App"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Apex VOD",
|
||||
"COST": 0,
|
||||
"STATUS": 1,
|
||||
"IMAGE": "./data/group/Gunslinger.jpg",
|
||||
@ -98,34 +165,6 @@
|
||||
"Tivimate Orange"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Carbon",
|
||||
"COST": 0,
|
||||
"STATUS": 1,
|
||||
"IMAGE": "./data/group/Carbon.jpg",
|
||||
"APPS": [
|
||||
"White&Black IM",
|
||||
"Green SMARTERS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Graphite",
|
||||
"COST": 0,
|
||||
"STATUS": 1,
|
||||
"IMAGE": "./data/group/Carbon.jpg",
|
||||
"APPS": [
|
||||
"White&Black IM",
|
||||
"Green SMARTERS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Silver VOD",
|
||||
"COST": "X",
|
||||
"STATUS": "X",
|
||||
"APPS": [
|
||||
"VOD App"
|
||||
]
|
||||
},
|
||||
{
|
||||
"SUB": "Top VOD",
|
||||
"COST": 10,
|
||||
|
1938
package-lock.json
generated
1938
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -14,10 +14,14 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"body-parser": "^1.19.0",
|
||||
"cached-request": "^2.0.1",
|
||||
"dotenv": "^8.2.0",
|
||||
"express": "^4.17.1",
|
||||
"express-basic-auth": "^1.2.0",
|
||||
"fs": "0.0.1-security",
|
||||
"nato": "^0.1.1",
|
||||
"node-emoji": "^1.11.0",
|
||||
"node-telegram-bot-api": "^0.50.0",
|
||||
"perfect-logger": "^2.0.1",
|
||||
"phonetic-alphabet-converter": "^1.1.0",
|
||||
|
Loading…
x
Reference in New Issue
Block a user