-
Notifications
You must be signed in to change notification settings - Fork 0
/
mini-launchtime.js
107 lines (89 loc) · 3.21 KB
/
mini-launchtime.js
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
const DiscordRPC = require('discord-rpc');
const aw = require('active-win');
const os = require('os');
// Created by sevcator
// Get windows version
const { platform, release, version, userInfo } = os;
// Client ID for show name app and rich presense images
const clientId = '1151742357314744400';
// Creating a rpc object
const rpc = new DiscordRPC.Client({ transport: 'ipc' });
// Creating a vars for change it
let previousWindow = null;
let Timestamp = new Date();
async function updatePresence() {
try {
// Get info about active window
const activeWindow = await aw();
// Creating a var to use it
let details = '';
if (activeWindow) {
// If app name exists using it to details
if (activeWindow.owner && activeWindow.owner.name !== null) {
details = activeWindow.owner.name || '';
lore = activeWindow.title
}
// If app name matches window title using just details
if (activeWindow.title === activeWindow.owner.name) {
details = activeWindow.title;
}
// Some examples to spoof windows
if (activeWindow.title === "Program Manager") {
if (activeWindow.owner.name === "Windows Explorer") {
details = 'Desktop';
} else if (activeWindow.owner.name === "Проводник") {
details = 'Рабочий стол';
}
}
if (lore === "Task Switching") {
if (activeWindow.owner.name === "Windows Explorer" || activeWindow.owner.name === "Проводник") {
details = 'Alt+Tab';
}
}
if (lore === "Переключение задач") {
if (activeWindow.owner.name === "Windows Explorer" || activeWindow.owner.name === "Проводник") {
details = 'Alt+Tab';
}
}
if (activeWindow.title === "Search" && activeWindow.owner.name === "Search application") {
details = 'Start Menu';
}
if (activeWindow.title === "Поиск" && activeWindow.owner.name === "Search application") {
details = 'Меню Пуск';
}
}
// Ready rich presence
const activity = {
startTimestamp: Timestamp,
largeImageKey: 'activewin-1',
largeImageText: `System: ${os.version} [${os.release}]\nCurrent User: ${os.userInfo().username}`,
};
// If details length more 50 symbols fix it...
if (details.length > 50) {
cutted_details = details.substring(0, 50);
details = `${cutted_details}...`
}
// If var details found, rich presence use it
if (details) {
activity.details = details;
}
// If var details not found, rich presence use No active window
if (!details) {
activity.details = 'Unknown';
}
// Update presence
rpc.setActivity(activity);
} catch (error) {
console.error('Error updating presence:', error);
}
}
rpc.on('ready', () => {
console.clear()
console.log(`Active Window v1.33 (mini-launchtime)`);
console.log(``);
console.log(`Logged as ${rpc.user.username}`);
console.log(`Ctrl + C to exit`);
updatePresence();
setInterval(updatePresence, 1111);
});
rpc.login({ clientId }).catch(console.error);