update dirs/readme
This commit is contained in:
parent
edff30e6c7
commit
e0328d2677
87
README.md
87
README.md
|
@ -1,33 +1,59 @@
|
|||
# trackmyd-bot
|
||||
<h1 align="center">Welcome to trackmyd-bot 🗺️</h1>
|
||||
<p>
|
||||
<a href="https://github.com/franjsco/trackmyd-bot/graphs/commit-activity" target="_blank">
|
||||
<img alt="Maintenance" src="https://img.shields.io/badge/Maintained%3F-yes-green.svg" />
|
||||
</a>
|
||||
<a href="https://github.com/franjsco/trackmyd-bot/blob/master/LICENSE" target="_blank">
|
||||
<img alt="License: GPL--3.0--or--later" src="https://img.shields.io/github/license/franjsco/trackmyd-bot" />
|
||||
</a>
|
||||
<a href="https://twitter.com/franjsco" target="_blank">
|
||||
<img alt="Twitter: franjsco" src="https://img.shields.io/twitter/follow/franjsco.svg?style=social" />
|
||||
</a>
|
||||
</p>
|
||||
|
||||
A telegram bot to track your devices.
|
||||
|
||||
<img src="screenshot.png" height="400">
|
||||
|
||||
This bot is written in Node.js
|
||||
|
||||
## Architecture
|
||||
|
||||
**trackmyd-bot** uses the [**trackmyd-api**](https://github.com/franjsco/trackmyd-api) project APIs to get device locations.
|
||||
|
||||
To configure the server, refer to the [**trackmyd-api**](https://github.com/franjsco/trackmyd-api) repository.
|
||||
> A telegram bot to track your devices.
|
||||
|
||||
|
||||
In order to use trackmyd-bot, in addiction to the configuration of the trackmyd-api, it’s also necessary to configure [**GPSLogger**](https://github.com/mendhak/gpslogger), an open-source application that allows sending location through HTTP calls.
|
||||
![trackmyd screenshot](screenshot.png)
|
||||
|
||||
|
||||
<img src="architecture.png" height="150">
|
||||
## Install
|
||||
|
||||
|
||||
Steps:
|
||||
1. Install **Node.js** and **npm**.
|
||||
2. Clone this repository.
|
||||
3. Install dependencies with `npm install`.
|
||||
4. Create a new bot with **@BotFather** on Telegram.
|
||||
5. Enter the **token** generated by BotFather in (app.token) into `config.json`.
|
||||
6. Enter your **Telegram ID** in (app.authorizedUsers) into `config.json`.
|
||||
7. Configure Basic Authentication in (app.api.headers) into `config.json`.
|
||||
8. Configure API endpoint(*).
|
||||
|
||||
### Architecture
|
||||
(*) **trackmyd-bot** uses the [**trackmyd-api**](https://github.com/franjsco/trackmyd-api) project APIs to get device locations.
|
||||
|
||||
To configure the server API, refer to the [**trackmyd-api**](https://github.com/franjsco/trackmyd-api) repository.
|
||||
|
||||
In order to use trackmyd-bot, in addiction to the configuration of the trackmyd-api, it’s also necessary to configure [**GPSLogger**](https://github.com/mendhak/gpslogger).
|
||||
|
||||
|
||||
<img align="center" src="architecture.jpg" height="200px">
|
||||
|
||||
## Usage
|
||||
Start server:
|
||||
```sh
|
||||
npm run start
|
||||
```
|
||||
|
||||
### Steps
|
||||
Before requesting the position to the bot you need to add a new device and configure it.
|
||||
|
||||
1. **Add a new device.**
|
||||
1. **Add a new device (on Bot).**
|
||||
|
||||
Send the `/add` command to the bot. You will be prompted to add the device name.
|
||||
|
||||
2. **Configure GPSLogger on Android.**
|
||||
2. **Configure GPSLogger (on Android).**
|
||||
|
||||
Once confirmed the device name, the bot will return 3 messages:
|
||||
|
||||
|
@ -39,27 +65,26 @@ Before requesting the position to the bot you need to add a new device and confi
|
|||
|
||||
Then press "Start Logging" on GPSLogger.
|
||||
|
||||
3. **Request the position at the bot**
|
||||
3. **Request the position (on Bot)**
|
||||
|
||||
Send the `/position` command to the bot and select the device. If the device (with GPSLogger) has sent the information to the API, 2 messages will be returned (one with the location on the map, and one with additional information).
|
||||
|
||||
## Author
|
||||
|
||||
## Installation
|
||||
👤 **franjsco (Francesco Esposito)**
|
||||
|
||||
### Step by step
|
||||
* Website: https://franjsco.github.io/
|
||||
* Twitter: [@franjsco](https://twitter.com/franjsco)
|
||||
* Github: [@franjsco](https://github.com/franjsco)
|
||||
|
||||
1. Install **NodeJS** and **NPM**.
|
||||
2. Clone this repository.
|
||||
3. Install dependencies with `npm install`.
|
||||
4. Create a new bot with **BotFather** on Telegram
|
||||
5. Enter the **token** generated by BotFather in (app.token) into `config.json`.
|
||||
6. Enter your **Telegram ID** in (app.authorizedUsers) into `config.json`.
|
||||
7. Configure Basic Authentication in (app.api.headers) into `config.json`.
|
||||
8. Start with `npm start`.
|
||||
## Show your support
|
||||
|
||||
### License
|
||||
Give a ⭐️ if this project helped you!
|
||||
|
||||
GPLv3
|
||||
## 📝 License
|
||||
|
||||
---
|
||||
Made with ❤️ by Francesco Esposito ([@franjsco](https://github.com/franjsco))
|
||||
Copyright © 2020 [franjsco (Francesco Esposito)](https://github.com/franjsco).<br />
|
||||
This project is [GPL--3.0--or--later](https://github.com/franjsco/trackmyd-bot/blob/master/LICENSE) licensed.
|
||||
|
||||
***
|
||||
_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_
|
Binary file not shown.
After Width: | Height: | Size: 63 KiB |
File diff suppressed because it is too large
Load Diff
13
package.json
13
package.json
|
@ -1,19 +1,20 @@
|
|||
{
|
||||
"name": "trackmyd-bot",
|
||||
"version": "1.0.0",
|
||||
"description": "trackmyd telegram bot",
|
||||
"description": "A telegram bot to track your devices.",
|
||||
"main": "server.js",
|
||||
"dependencies": {
|
||||
"bunyan": "^1.8.12",
|
||||
"node-fetch": "^2.3.0",
|
||||
"telebot": "^1.2.6"
|
||||
"node-fetch": "^2.6.0",
|
||||
"telebot": "^1.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^5.14.1",
|
||||
"eslint-config-airbnb-base": "^13.1.0",
|
||||
"eslint-plugin-import": "^2.16.0"
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-config-airbnb-base": "^13.2.0",
|
||||
"eslint-plugin-import": "^2.20.2"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "node src/server.js",
|
||||
"lint": "eslint",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
|
|
BIN
screenshot.png
BIN
screenshot.png
Binary file not shown.
Before Width: | Height: | Size: 739 KiB After Width: | Height: | Size: 472 KiB |
|
@ -1,5 +1,5 @@
|
|||
const fetch = require('node-fetch');
|
||||
const { api } = require('./config');
|
||||
const { api } = require('../config.json');
|
||||
const logger = require('./logger');
|
||||
|
||||
const devicesPath = `${api.baseURL}${api.paths.devices}`;
|
|
@ -1,4 +1,4 @@
|
|||
const config = require('./config');
|
||||
const config = require('../config.json');
|
||||
|
||||
function auth(userId) {
|
||||
return config.app.authorizedUsers.includes(userId);
|
|
@ -1,6 +1,6 @@
|
|||
/* eslint-disable no-console */
|
||||
const bunyan = require('bunyan');
|
||||
const config = require('./config.json');
|
||||
const config = require('../config.json');
|
||||
|
||||
const log = bunyan.createLogger({
|
||||
name: config.app.name,
|
|
@ -1,6 +1,6 @@
|
|||
/* eslint-disable consistent-return */
|
||||
const Telebot = require('telebot');
|
||||
const config = require('./config');
|
||||
const config = require('../config');
|
||||
const utils = require('./utils');
|
||||
const auth = require('./auth');
|
||||
const api = require('./api');
|
||||
|
@ -17,6 +17,8 @@ const bot = new Telebot({
|
|||
|
||||
bot.on('/start', (msg) => {
|
||||
if (!auth(msg.from.id)) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(`USER ID: ${msg.from.id}`);
|
||||
return bot.sendMessage(msg.from.id, templates.unauthorizedUser(), { parseMode: 'Markdown' });
|
||||
}
|
||||
bot.sendMessage(msg.from.id, templates.welcome(), { parseMode: 'Markdown' });
|
||||
|
@ -118,6 +120,7 @@ bot.on('ask.removeDevice', (msg) => {
|
|||
});
|
||||
});
|
||||
|
||||
|
||||
bot.start();
|
||||
|
||||
process.on('SIGINT', () => {
|
|
@ -1,5 +1,5 @@
|
|||
/* eslint-disable no-underscore-dangle */
|
||||
const config = require('./config');
|
||||
const config = require('../config');
|
||||
const utils = require('./utils');
|
||||
|
||||
|
Loading…
Reference in New Issue