diff --git a/index.js b/index.js index 5c1dde0..885801a 100644 --- a/index.js +++ b/index.js @@ -1,30 +1,15 @@ import fetch from 'node-fetch'; import { TelegramClient, Api as TgApi } from 'telegram'; -import { StringSession } from 'telegram/sessions/index.js'; +import { StoreSession } from 'telegram/sessions/index.js'; import 'dotenv/config'; import prompt from 'prompt'; -import fs from 'fs/promises'; -import path from 'path'; -import { fileURLToPath } from 'url'; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); const apiId = parseInt(process.env.API_ID); const apiHash = process.env.API_HASH; const songPrefix = process.env.SONG_PREFIX || ""; -const sessionFile = path.join(__dirname, 'tg_session', 'session'); - -let sessionStore = new StringSession(""); -try { - const readSession = await fs.readFile(sessionFile, "utf8"); - if (readSession) { - sessionStore = new StringSession(readSession); - } -} catch (e) { - console.error(e); -} +console.log(process.env); +const sessionStore = new StoreSession("tg_session"); async function getCurrentSong() { return fetch('https://multi-scrobbler.riksolo.com/api/status').then((data) => { @@ -50,8 +35,7 @@ async function getCurrentSong() { // if a player exists, get it's song if (sortedPlayers.length !== 0) { - const playData = sortedPlayers[0]?.play?.data; - if (!playData) return ""; + const playData = sortedPlayers[0].play.data; nowPlaying = `${playData.artists.join(', ')} - ${playData.track}`; } @@ -88,18 +72,21 @@ async function initTelegram() { onError: (err) => console.error(err) }); + // save the session so we don't have to log in every time client.session.save(); - await fs.writeFile(sessionFile, sessionStore.save()); - return client; } +prompt.start(); + + // store client here const tg = await initTelegram(); + // do we actually have a client? if (!!tg) { let song = ""; @@ -112,8 +99,6 @@ if (!!tg) { console.log(`new song: ${song}`); - const ytURL = await getYoutube(song); - // update bio with new song tg.invoke(new TgApi.account.UpdateProfile({ about: songPrefix + song