File size: 1,744 Bytes
31d882e
 
 
 
 
e04cf41
31d882e
 
 
 
 
 
 
 
 
 
e04cf41
31d882e
 
 
 
 
 
e04cf41
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31d882e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e04cf41
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import Koa from "koa";
import bodyParser from "koa-bodyparser";
import compression from "koa-compress";
import morgan from "koa-morgan";
import Router from "koa-router";
import { inspect } from "util";
import "dotenv/config";

const port = 7860;

const app = new Koa();

app.use(morgan("dev"));
app.use(compression());
app.use(bodyParser());

const { API_KEY, API_SECRET, BEARER_TOKEN, CLIENT_ID, CLIENT_SECRET } = process.env;

const router = new Router();

app.use(router.routes());
app.use(router.allowedMethods());

//Import package
import { Client, auth } from "twitter-api-sdk";

// Initialize auth client first
const authClient = new auth.OAuth2User({
	client_id: CLIENT_ID as string,
	client_secret: CLIENT_SECRET as string,
	callback: "https://huggingface-projects-twitter-image-alt-bot.hf.space/callback",
	scopes: ["tweet.read", "users.read", "offline.access"],
});

// Pass auth credentials to the library client
const twitterClient = new Client(authClient);

const BOT_NAME = "coyotte508";

function debug(stuff: any) {
	console.log(inspect(stuff, { depth: 20 }));
}

async function lookupTweets() {
	const resp = await fetch(`https://api.twitter.com/2/users/${BOT_NAME}/mentions`, {
		headers: { Authorization: `Bearer ${BEARER_TOKEN}` },
	});

	debug(await resp.json());
}

async function listen() {
	try {
		const promise = new Promise<void>((resolve, reject) => {
			app.listen(port, "localhost", () => resolve());
			app.once("error", (err) => reject(err));
		});

		await promise;

		console.log("app started on port", port);

		process.send?.("ready");
	} catch (err) {
		console.error(err);
	}
}

listen();

process.on("unhandledRejection", async (err) => {
	console.error("unhandled rejection", err);
});

lookupTweets();