tangled
alpha
login
or
join now
dunkirk.sh
/
unduckified
5
fork
atom
A fast, local-first "redirection engine" for !bang users with a few extra features ^-^
5
fork
atom
overview
issues
pulls
pipelines
feat: add image bang back
Fixes #8
dunkirk.sh
5 months ago
3f76b83e
26f41d6f
verified
This commit was signed with the committer's
known signature
.
dunkirk.sh
SSH Key Fingerprint:
SHA256:DqcG0RXYExE26KiWo3VxJnsxswN1QNfTBvB+bdSpk80=
+48
-39
1 changed file
expand all
collapse all
unified
split
src
bangs
hashbanggen.ts
+48
-39
src/bangs/hashbanggen.ts
···
3
3
// Developer script that converts ./bang.ts' array to hashmap.
4
4
5
5
const hashbang: {
6
6
-
[key: string]: {
7
7
-
c?: string; // Category
8
8
-
sc?: string; // Subcategory
9
9
-
d: string; // Domain
10
10
-
ad?: string; // Alternate Domain
11
11
-
r: number; // Rank (default to 0)
12
12
-
s: string; // Website Name
13
13
-
t: string; // Trigger
14
14
-
ts?: string[]; // Additional Triggers
15
15
-
u: string; // Template URL
16
16
-
x?: string; // Regex pattern
17
17
-
fmt?: string[]; // Format flags
18
18
-
skip_tests?: boolean; // Skip tests flag
19
19
-
};
20
20
-
} = {
6
6
+
[key: string]: {
7
7
+
c?: string; // Category
8
8
+
sc?: string; // Subcategory
9
9
+
d: string; // Domain
10
10
+
ad?: string; // Alternate Domain
11
11
+
r: number; // Rank (default to 0)
12
12
+
s: string; // Website Name
13
13
+
t: string; // Trigger
14
14
+
ts?: string[]; // Additional Triggers
15
15
+
u: string; // Template URL
16
16
+
x?: string; // Regex pattern
17
17
+
fmt?: string[]; // Format flags
18
18
+
skip_tests?: boolean; // Skip tests flag
19
19
+
};
20
20
+
} = {
21
21
t3: {
22
22
c: "AI",
23
23
d: "www.t3.chat",
···
45
45
t: "tiktok",
46
46
u: "https://www.tiktok.com/search?q={{{s}}}",
47
47
},
48
48
+
image: {
49
49
+
c: "Online Services",
50
50
+
d: "duckduckgo.com",
51
51
+
r: 0,
52
52
+
s: "Duckduckgo images",
53
53
+
sc: "Search",
54
54
+
t: "image",
55
55
+
u: "https://duckduckgo.com/?q={{{s}}}&ia=images&iax=images&atb=v375-1",
56
56
+
},
48
57
};
49
58
50
59
// Convert rawBangs array to hashbang object
51
60
rawBangs.forEach((bang: any) => {
52
52
-
if (!bang.t || !bang.u || !bang.s || !bang.d) {
53
53
-
console.warn(`Skipping invalid bang: ${JSON.stringify(bang)}`);
54
54
-
return;
55
55
-
}
61
61
+
if (!bang.t || !bang.u || !bang.s || !bang.d) {
62
62
+
console.warn(`Skipping invalid bang: ${JSON.stringify(bang)}`);
63
63
+
return;
64
64
+
}
56
65
57
57
-
hashbang[bang.t] = {
58
58
-
c: bang.c,
59
59
-
sc: bang.sc,
60
60
-
d: bang.d,
61
61
-
ad: bang.ad,
62
62
-
r: 0, // Default rank
63
63
-
s: bang.s,
64
64
-
t: bang.t,
65
65
-
ts: bang.ts,
66
66
-
u: bang.u,
67
67
-
x: bang.x,
68
68
-
fmt: bang.fmt,
69
69
-
skip_tests: bang.skip_tests,
70
70
-
};
66
66
+
hashbang[bang.t] = {
67
67
+
c: bang.c,
68
68
+
sc: bang.sc,
69
69
+
d: bang.d,
70
70
+
ad: bang.ad,
71
71
+
r: 0, // Default rank
72
72
+
s: bang.s,
73
73
+
t: bang.t,
74
74
+
ts: bang.ts,
75
75
+
u: bang.u,
76
76
+
x: bang.x,
77
77
+
fmt: bang.fmt,
78
78
+
skip_tests: bang.skip_tests,
79
79
+
};
71
80
72
72
-
// Add additional triggers (if any) to the hashbang
73
73
-
if (bang.ts) {
74
74
-
bang.ts.forEach((trigger: string) => {
75
75
-
hashbang[trigger] = { ...hashbang[bang.t], t: trigger };
76
76
-
});
77
77
-
}
81
81
+
// Add additional triggers (if any) to the hashbang
82
82
+
if (bang.ts) {
83
83
+
bang.ts.forEach((trigger: string) => {
84
84
+
hashbang[trigger] = { ...hashbang[bang.t], t: trigger };
85
85
+
});
86
86
+
}
78
87
});
79
88
80
89
Bun.write(