This repository has been archived by the owner on Jun 28, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
messages.ts
91 lines (84 loc) · 2.42 KB
/
messages.ts
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import { ActivityType } from "discord.js"
// add more
interface Nested<Type> {
[key: string]: Nested<Type> | Type[]
}
const listening: Nested<string> = {
LOL: [
'esmBot users whine',
'Molly crying',
],
Songs: Object.entries({
'Scatman John': ["Scatman's World"],
'Alex Arcoleo': ['Bloom 7'],
'Neil Cicierega': ['Wow Wow', 'The Starting Line'],
'Lil Nas X': [
'Montero (Call Me By Your Name)',
'funny horse song'
],
deadmau5: [
'Bridged By A Lightwave',
'Glivch',
'Are You Not Afraid',
'minecraft skin with ear,, how'
],
'Diamond Eyes': ['Everything'],
trollsmile: [
'trollsmile admin welcome sound 10 hour loop',
'trollsmile winning (feat. LuaQuack)',
'trollsmile on top (feat. the troiismile Roblox account)'
],
'Fatty Spins': [
"Doin' Your Mom" // you know we straight
],
"Nero's Day At Disneyland": [
"In Aisles",
"Civilizing People",
"No Money Down, Low Monthly Payments",
"Child Protective Services Theme Song",
"Charging Swarm Of Mouseketeers",
"Everything Must Go",
"Death Parade Feat. Kevin Shields",
"Action Winter Journey",
"Stretched Linen Over Contorted Bodies",
"Eulogy For Nick Galvas",
"In Keyed Fantasy",
"Probably End Up Dead In A Ditch Somewhere",
"Plumes Of ATM Sinew",
"Vengeance In Cloudland",
"Swarming Idiot Effigy"
]
})
.map(([author, songs]) => songs.map(title => `${author} - ${title}`))
.flat(), // Turn this object into a string[] of 'Author - Song' names
}
const competing: string[] = [
'moller competition',
'a Dream video'
]
const watching: string[] = [
'you',
'YouTube',
'paint dry',
'vines',
`trollsmile ad #${Math.floor(Math.random() * 1000)}`
]
const flatten = <Type> (messages: Nested<Type> | Type[]): Type[] => {
const result = Object.values(messages)
.map(val => Array.isArray(val) ? val : Object.values(val).flat())
.flat()
return result.some(Array.isArray) ? flatten(result) : result
}
interface TrollsmileLine { line: string, type: ActivityType }
function to_line (lines: string[], type: ActivityType): TrollsmileLine[] {
return lines.map(line => ({
line,
type
}))
}
const all: TrollsmileLine[] = [
...to_line(flatten(listening), 'LISTENING'),
...to_line(competing, 'COMPETING'),
...to_line(watching, 'WATCHING')
]
export { listening as messages, all }