Merge branch 'main' into patch-1
This commit is contained in:
commit
d87303d9f5
3 changed files with 21 additions and 11 deletions
17
README.md
17
README.md
|
@ -7,12 +7,15 @@ Lynx is a a simple Telegram bot made in Node.js.
|
||||||
- Node.js 20 LTS (or above)
|
- Node.js 20 LTS (or above)
|
||||||
- Python 3 (or above, for use with SpamWatch API)
|
- Python 3 (or above, for use with SpamWatch API)
|
||||||
- Python dependencies: use ``pip install -r requirements.txt``
|
- Python dependencies: use ``pip install -r requirements.txt``
|
||||||
- Node.js dependencies: use ``npm install``
|
- Node.js dependencies: use ``npm install .``
|
||||||
|
|
||||||
## Run it yourself, develop or contribute with Lynx
|
## Run it yourself, develop or contribute with Lynx
|
||||||
First, clone the repo and init the submodules with
|
First, clone the repo with Git:
|
||||||
```
|
```
|
||||||
git clone https://github.com/lucmsilva651/lynx
|
git clone https://github.com/lucmsilva651/lynx
|
||||||
|
```
|
||||||
|
And now, init the submodules with these commands (this is very important):
|
||||||
|
```
|
||||||
cd lynx
|
cd lynx
|
||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
```
|
```
|
||||||
|
@ -20,17 +23,21 @@ Next, inside the repository directory, go to props folder and create a config.js
|
||||||
```
|
```
|
||||||
{
|
{
|
||||||
"botToken": "0000000000:AAAaaAAaaaaAaAaaAAAaaaAaaaaAAAAAaaa",
|
"botToken": "0000000000:AAAaaAAaaaaAaAaaAAAaaaAaaaaAAAAAaaa",
|
||||||
"admins": [0000000000, 1111111111, 2222222222]
|
"admins": [0000000000, 1111111111, 2222222222],
|
||||||
|
"lastKey": "0000a000a0000aaa0a00a0aaa0a000000",
|
||||||
|
"lastSecret": "0000a000a0a0000aa0000aa00000000a"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
- **botToken**: Put your bot token that you created at [@BotFather](https://t.me/botfather), as the example above.
|
- **botToken**: Put your bot token that you created at [@BotFather](https://t.me/botfather), as the example above.
|
||||||
- **admins**: Put the ID of the people responsible for managing the bot (as the example above). They can use some administrative + exclusive commands on any group.
|
- **admins**: Put the ID of the people responsible for managing the bot (as the example above). They can use some administrative + exclusive commands on any group.
|
||||||
|
- **lastKey**: Last.fm API key, for use on lastfm.js functions, like see who is listening to what song.
|
||||||
|
- **lastSecret**: Last.fm API secret (optional), which has the "same" purpose as the API key above.
|
||||||
|
|
||||||
After editing the file, save all changes and run the bot with ``npm start``.
|
After editing the file, save all changes and run the bot with ``npm start``.
|
||||||
- To deal with dependencies, just run ``npm install`` or ``npm i`` at any moment to install any of them.
|
- To deal with dependencies, just run ``npm install .`` or ``npm i .`` at any moment to install any of them.
|
||||||
|
|
||||||
## Note
|
## Note
|
||||||
- Take care of your ``config.json`` file, as it is so much important and needs to be secret (like your passwords), as anyone can do whatever they want to the bot with this token!
|
- Take care of your ``config.json`` file, as it is so much important and needs to be secret (like your passwords), as anyone can do whatever they want to the bot with this token!
|
||||||
|
|
||||||
## About/License
|
## About/License
|
||||||
MIT - 2024 Lucas Gabriel (lucmsilva).
|
BSD-3-Clause - 2024 Lucas Gabriel (lucmsilva).
|
|
@ -109,12 +109,11 @@ function formatPhone(phone) {
|
||||||
.filter(([_, key]) => formattedPhone[key])
|
.filter(([_, key]) => formattedPhone[key])
|
||||||
.map(([label, key]) => `<b>${label}:</b> <code>${formattedPhone[key]}</code>`)
|
.map(([label, key]) => `<b>${label}:</b> <code>${formattedPhone[key]}</code>`)
|
||||||
.join("\n\n");
|
.join("\n\n");
|
||||||
|
|
||||||
const deviceNURL = <a href=`${formattedPhone.url}`>${formattedPhone.name}</a>
|
const deviceUrl = `<b>GSMArena page:</b> ${formattedPhone.url}`;
|
||||||
|
|
||||||
const deviceImage = phone.picture ? `<b>Device Image</b>: ${phone.picture}` : '';
|
const deviceImage = phone.picture ? `<b>Device Image</b>: ${phone.picture}` : '';
|
||||||
|
|
||||||
return `<b>${deviceNURL}</b>\n\n${attributes}\n\n${deviceImage}`;
|
return `<b>\n\nName: </b><code>${formattedPhone.name}</code>\n\n${attributes}\n\n${deviceImage}\n\n${deviceUrl}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchHtml(url) {
|
async function fetchHtml(url) {
|
||||||
|
@ -232,7 +231,7 @@ module.exports = (bot) => {
|
||||||
|
|
||||||
if (phoneDetails.name) {
|
if (phoneDetails.name) {
|
||||||
const message = formatPhone(phoneDetails);
|
const message = formatPhone(phoneDetails);
|
||||||
ctx.editMessageText(`<b><a href="tg://user?id=${userId}">${userName}</a>, there are the details of your device: </b>` + message, { parse_mode: 'HTML', disable_web_page_preview: false });
|
ctx.editMessageText(`<b><a href="tg://user?id=${userId}">${userName}</a>, there are the details of your device:</b>` + message, { parse_mode: 'HTML', disable_web_page_preview: false });
|
||||||
} else {
|
} else {
|
||||||
ctx.reply("Error fetching phone details.", { reply_with_message_id: ctx.message.message_id });
|
ctx.reply("Error fetching phone details.", { reply_with_message_id: ctx.message.message_id });
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,13 @@ const spamwatchMiddleware = require('../plugins/lib-spamwatch/Middleware.js')(is
|
||||||
|
|
||||||
async function getUserInfo(ctx) {
|
async function getUserInfo(ctx) {
|
||||||
const Strings = getStrings(ctx.from.language_code);
|
const Strings = getStrings(ctx.from.language_code);
|
||||||
|
let lastName = ctx.from.last_name;
|
||||||
|
if (lastName === undefined) {
|
||||||
|
lastName = " ";
|
||||||
|
}
|
||||||
|
|
||||||
userInfo = Strings.userInfo
|
userInfo = Strings.userInfo
|
||||||
.replace('{userName}', `${ctx.from.first_name} ${ctx.from.last_name}` || Strings.unKnown)
|
.replace('{userName}', `${ctx.from.first_name} ${lastName}` || Strings.unKnown)
|
||||||
.replace('{userId}', ctx.from.id || Strings.unKnown)
|
.replace('{userId}', ctx.from.id || Strings.unKnown)
|
||||||
.replace('{userHandle}', ctx.from.username ? `@${ctx.from.username}` : Strings.varNone)
|
.replace('{userHandle}', ctx.from.username ? `@${ctx.from.username}` : Strings.varNone)
|
||||||
.replace('{userPremium}', ctx.from.is_premium ? Strings.varYes : Strings.varNo)
|
.replace('{userPremium}', ctx.from.is_premium ? Strings.varYes : Strings.varNo)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue