Readme

Twitter 𝕏 keyword Alerts

Custom notifications for when you, your company, or anything you care about is mentioned on Twitter.

1. Authentication

You'll need a Twitter Bearer Token. Follow these instructions to get one.

Unfortunately it costs $100 / month to have a Basic Twitter Developer account. If you subscribe to Val Town Pro, I can let you "borrow" my token. Just comment on this val and I'll hook you up.

2. Query

Change the query variable for what you want to get notified for.

You can use Twitter's search operators to customize your query, for some collection of keywords, filtering out others, and much more!

3. Notification

Below I'm sending these mentions to a private channel in our company Discord, but you can customize that to whatever you want, @std/email, Slack, Telegram, whatever.

TODO

  • Filter out retweets. We've long wanted to filter these out. Should be a quick fix if anyone wants to send me a PR :) Completed by @sumukh
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
// import { discordWebhook } from "https://esm.town/v/stevekrouse/discordWebhook";
// import { twitterSearch } from "https://esm.town/v/stevekrouse/twitterSearch";
// const excludedUsernames = [
// // "valenzuelacity",
// ];
// const baseQuery = "\"val.town\" OR \"val town\" -_ValTown_ -is:retweet";
// const excludeUsersQuery = excludedUsernames.map(username => `-from:${username}`).join(" ");
// const query = `${baseQuery}`.trim();
// console.log(Deno.env.get("twitter"));
// export async function twitterAlert() {
// const results = await twitterSearch({
// query,
// // start_time: lastRunAt,
// start_time: new Date(Date.now() - 24 * 60 * 60 * 1000), // 1 day
// bearerToken: Deno.env.get("twitter"),
// });
// if (!results.length) return;
// // format results
// let content = results
// .map(({ author_name, author_username, text, id }) => `https://fxtwitter.com/${author_username}/status/${id}`)
// .join("\n");
// return content;
// // notify
// // await discordWebhook({
// // url: Deno.env.get("mentionsDiscord"),
// // content,
// // });
// }
export async function main() {
console.log("ok");
}
Val Town is a social website to write and deploy JavaScript.
Build APIs and schedule functions from your browser.
Comments
Nobody has commented on this val yet: be the first!
August 31, 2024