chore: more minimal result format with less bloat and icons
This commit is contained in:
parent
6c7993cdba
commit
deef8ab58b
2 changed files with 64 additions and 89 deletions
|
|
@ -12,7 +12,7 @@ import {
|
|||
TooManyTimeoutsError,
|
||||
TooManyRequestsError,
|
||||
} from '../error';
|
||||
import { flagFromCountryCode, languageFromCountryCode } from './language';
|
||||
import { flagFromCountryCode } from './language';
|
||||
import { envGetAppName } from './env';
|
||||
import { Id } from './id';
|
||||
import { ExtractorRegistry } from '../extractor';
|
||||
|
|
@ -151,7 +151,11 @@ export class StreamResolver {
|
|||
private buildName(ctx: Context, urlResult: UrlResult): string {
|
||||
let name = envGetAppName();
|
||||
|
||||
name += urlResult.meta.height ? ` ${urlResult.meta.height}P` : ' N/A';
|
||||
name += ` ${flagFromCountryCode(urlResult.meta.countryCode)}`;
|
||||
|
||||
if (urlResult.meta.height) {
|
||||
name += ` ${urlResult.meta.height}p`;
|
||||
}
|
||||
|
||||
if (urlResult.isExternal && showExternalUrls(ctx.config)) {
|
||||
name += ` ⚠️ external`;
|
||||
|
|
@ -210,15 +214,15 @@ export class StreamResolver {
|
|||
const titleLines = [];
|
||||
|
||||
if (urlResult.meta.title) {
|
||||
titleLines.push(`📂 ${urlResult.meta.title}`);
|
||||
titleLines.push(urlResult.meta.title);
|
||||
}
|
||||
|
||||
const titleDetailsLine = [];
|
||||
if (urlResult.meta.bytes) {
|
||||
titleLines.push(`💾 ${bytes.format(urlResult.meta.bytes, { unitSeparator: ' ' })}`);
|
||||
titleDetailsLine.push(`💾 ${bytes.format(urlResult.meta.bytes, { unitSeparator: ' ' })}`);
|
||||
}
|
||||
|
||||
titleLines.push(`🌐 ${languageFromCountryCode(urlResult.meta.countryCode)} ${flagFromCountryCode(urlResult.meta.countryCode)}`);
|
||||
titleLines.push(`🔗 ${urlResult.label}`);
|
||||
titleDetailsLine.push(`🔗 ${urlResult.label}`);
|
||||
titleLines.push(titleDetailsLine.join(' '));
|
||||
|
||||
if (urlResult.error) {
|
||||
titleLines.push(this.logErrorAndReturnNiceString(ctx, urlResult.sourceId, urlResult.error));
|
||||
|
|
|
|||
|
|
@ -6,65 +6,57 @@ exports[`resolve adds error info 1`] = `
|
|||
{
|
||||
"behaviorHints": {},
|
||||
"externalUrl": "https://example.com/",
|
||||
"name": "WebStreamr N/A ⚠️ external",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪 ⚠️ external",
|
||||
"title": "🔗 hoster.com
|
||||
⚠️ Request was blocked.",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"externalUrl": "https://example.com/",
|
||||
"name": "WebStreamr N/A ⚠️ external",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪 ⚠️ external",
|
||||
"title": "🔗 hoster.com
|
||||
⚠️ Request was blocked.",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"externalUrl": "https://example.com/",
|
||||
"name": "WebStreamr N/A ⚠️ external",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪 ⚠️ external",
|
||||
"title": "🔗 hoster.com
|
||||
🚦 Request was rate-limited. Please try again later or consider self-hosting.",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"externalUrl": "https://example.com/",
|
||||
"name": "WebStreamr N/A ⚠️ external",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪 ⚠️ external",
|
||||
"title": "🔗 hoster.com
|
||||
🚦 Too many recent timeouts. Please try again later.",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"externalUrl": "https://example2.com/",
|
||||
"name": "WebStreamr N/A ⚠️ external",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪 ⚠️ external",
|
||||
"title": "🔗 hoster.com
|
||||
❌ Request failed. Request-id: id.",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"externalUrl": "https://example2.com/",
|
||||
"name": "WebStreamr N/A ⚠️ external",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪 ⚠️ external",
|
||||
"title": "🔗 hoster.com
|
||||
🐢 Request timed out.",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"externalUrl": "https://example3.com/",
|
||||
"name": "WebStreamr N/A ⚠️ external",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪 ⚠️ external",
|
||||
"title": "🔗 hoster.com
|
||||
⏳ Request queue is full. Please try again later or consider self-hosting.",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"externalUrl": "https://example4.com/",
|
||||
"name": "WebStreamr N/A ⚠️ external",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪 ⚠️ external",
|
||||
"title": "🔗 hoster.com
|
||||
❌ Request failed with status 500 (Internal Server Error). Request-id: id.",
|
||||
},
|
||||
],
|
||||
|
|
@ -76,65 +68,57 @@ exports[`resolve adds error info 2`] = `
|
|||
"streams": [
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"name": "WebStreamr N/A",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪",
|
||||
"title": "🔗 hoster.com
|
||||
⚠️ Request was blocked.",
|
||||
"ytId": "E4WlUXrJgy4",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"name": "WebStreamr N/A",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪",
|
||||
"title": "🔗 hoster.com
|
||||
⚠️ Request was blocked.",
|
||||
"ytId": "E4WlUXrJgy4",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"name": "WebStreamr N/A",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪",
|
||||
"title": "🔗 hoster.com
|
||||
🚦 Request was rate-limited. Please try again later or consider self-hosting.",
|
||||
"ytId": "E4WlUXrJgy4",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"name": "WebStreamr N/A",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪",
|
||||
"title": "🔗 hoster.com
|
||||
🚦 Too many recent timeouts. Please try again later.",
|
||||
"ytId": "E4WlUXrJgy4",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"name": "WebStreamr N/A",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪",
|
||||
"title": "🔗 hoster.com
|
||||
❌ Request failed. Request-id: id.",
|
||||
"ytId": "E4WlUXrJgy4",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"name": "WebStreamr N/A",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪",
|
||||
"title": "🔗 hoster.com
|
||||
🐢 Request timed out.",
|
||||
"ytId": "E4WlUXrJgy4",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"name": "WebStreamr N/A",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪",
|
||||
"title": "🔗 hoster.com
|
||||
⏳ Request queue is full. Please try again later or consider self-hosting.",
|
||||
"ytId": "E4WlUXrJgy4",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {},
|
||||
"name": "WebStreamr N/A",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 hoster.com
|
||||
"name": "WebStreamr 🇩🇪",
|
||||
"title": "🔗 hoster.com
|
||||
❌ Request failed with status 500 (Internal Server Error). Request-id: id.",
|
||||
"ytId": "E4WlUXrJgy4",
|
||||
},
|
||||
|
|
@ -183,11 +167,9 @@ exports[`resolve returns sorted results 1`] = `
|
|||
"bingeGroup": "webstreamr-dropload_de",
|
||||
"videoSize": 1395864371,
|
||||
},
|
||||
"name": "WebStreamr 1080P",
|
||||
"title": "📂 des-teufels-bad-2024
|
||||
💾 1.3 GB
|
||||
🌐 German 🇩🇪
|
||||
🔗 Dropload",
|
||||
"name": "WebStreamr 🇩🇪 1080p",
|
||||
"title": "des-teufels-bad-2024
|
||||
💾 1.3 GB 🔗 Dropload",
|
||||
"url": "https://srv34.dropload.io/hls2/01/00197/lyo2h1snpe5c_h/master.m3u8?t=MZSqs3F338ocbM2eTs8X23s585dWcYuilGrNNcidNas&s=1749846846&e=14400&f=987607&srv=srv27&i=0.0&sp=0&ii=50.99.15.93&p1=srv27&p2=srv27",
|
||||
},
|
||||
{
|
||||
|
|
@ -195,11 +177,9 @@ exports[`resolve returns sorted results 1`] = `
|
|||
"bingeGroup": "webstreamr-dropload_it",
|
||||
"videoSize": 1181116006,
|
||||
},
|
||||
"name": "WebStreamr 720P",
|
||||
"title": "📂 the-devils-bath-2024-sd-sub-ita
|
||||
💾 1.1 GB
|
||||
🌐 Italian 🇮🇹
|
||||
🔗 Dropload",
|
||||
"name": "WebStreamr 🇮🇹 720p",
|
||||
"title": "the-devils-bath-2024-sd-sub-ita
|
||||
💾 1.1 GB 🔗 Dropload",
|
||||
"url": "https://srv34.dropload.io/hls2/01/00200/xsr90y2ltdyx_h/master.m3u8?t=rsJMeR8rtWZxFi_3DOdlt98U0rvAMincCe4-awDQzHE&s=1749846846&e=14400&f=1004116&srv=srv24&i=0.0&sp=0&ii=50.99.15.93&p1=srv24&p2=srv24",
|
||||
},
|
||||
{
|
||||
|
|
@ -207,11 +187,9 @@ exports[`resolve returns sorted results 1`] = `
|
|||
"bingeGroup": "webstreamr-supervideo_it",
|
||||
"videoSize": 1181116006,
|
||||
},
|
||||
"name": "WebStreamr 720P",
|
||||
"title": "📂 the-devils-bath-2024-sd-sub-ita
|
||||
💾 1.1 GB
|
||||
🌐 Italian 🇮🇹
|
||||
🔗 SuperVideo",
|
||||
"name": "WebStreamr 🇮🇹 720p",
|
||||
"title": "the-devils-bath-2024-sd-sub-ita
|
||||
💾 1.1 GB 🔗 SuperVideo",
|
||||
"url": "https://hfs311.serversicuro.cc/hls/,dnzpcjj427g4a3gyvbth53rxqgffbu4vol4o7gg7pskpzb6josghbkwhnisq,.urlset/master.m3u8",
|
||||
},
|
||||
{
|
||||
|
|
@ -219,11 +197,9 @@ exports[`resolve returns sorted results 1`] = `
|
|||
"bingeGroup": "webstreamr-supervideo_de",
|
||||
"videoSize": 1073741824,
|
||||
},
|
||||
"name": "WebStreamr 720P",
|
||||
"title": "📂 des-teufels-bad-2024
|
||||
💾 1 GB
|
||||
🌐 German 🇩🇪
|
||||
🔗 SuperVideo",
|
||||
"name": "WebStreamr 🇩🇪 720p",
|
||||
"title": "des-teufels-bad-2024
|
||||
💾 1 GB 🔗 SuperVideo",
|
||||
"url": "https://hfs309.serversicuro.cc/hls/,dnzpfi3d27g4a3gyvbmh5klwtl65qh654hyjtgupd6p577fze64mz3bsmdyq,.urlset/master.m3u8",
|
||||
},
|
||||
{
|
||||
|
|
@ -237,11 +213,9 @@ exports[`resolve returns sorted results 1`] = `
|
|||
},
|
||||
"videoSize": 791702409,
|
||||
},
|
||||
"name": "WebStreamr N/A",
|
||||
"title": "📂 des-teufels-bad-2024
|
||||
💾 755.03 MB
|
||||
🌐 German 🇩🇪
|
||||
🔗 DoodStream",
|
||||
"name": "WebStreamr 🇩🇪",
|
||||
"title": "des-teufels-bad-2024
|
||||
💾 755.03 MB 🔗 DoodStream",
|
||||
"url": "https://aa360cc.cloudatacdn.com/u5kjv4jxytd3sdgge5uogji5dg4huat2pxrm2qibdbm5rlyusvlvslr3u3ta/bibyo6w0dm~mocked-random-string?token=7uebebipnnhusa4xnyea1er4&expiry=639837296000",
|
||||
},
|
||||
{
|
||||
|
|
@ -254,9 +228,8 @@ exports[`resolve returns sorted results 1`] = `
|
|||
},
|
||||
},
|
||||
},
|
||||
"name": "WebStreamr N/A",
|
||||
"title": "📂 the-devils-bath-2024-sd-sub-ita
|
||||
🌐 Italian 🇮🇹
|
||||
"name": "WebStreamr 🇮🇹",
|
||||
"title": "the-devils-bath-2024-sd-sub-ita
|
||||
🔗 DoodStream",
|
||||
"url": "https://kk892as.cloudatacdn.com/u5kj7j7s27d3sdgge5woezkbi4pu672wktq3aqujw47rbx4declm2mk2k2gq/4msi5kvncy~mocked-random-string?token=aw2v2d8uhbrj2ky54d573ujk&expiry=639837296000",
|
||||
},
|
||||
|
|
@ -265,18 +238,16 @@ exports[`resolve returns sorted results 1`] = `
|
|||
"bingeGroup": "webstreamr-external_de",
|
||||
},
|
||||
"externalUrl": "https://mixdrop.ag/e/3nzwveprim63or6",
|
||||
"name": "WebStreamr N/A ⚠️ external",
|
||||
"title": "🌐 German 🇩🇪
|
||||
🔗 mixdrop.ag",
|
||||
"name": "WebStreamr 🇩🇪 ⚠️ external",
|
||||
"title": "🔗 mixdrop.ag",
|
||||
},
|
||||
{
|
||||
"behaviorHints": {
|
||||
"bingeGroup": "webstreamr-external_it",
|
||||
},
|
||||
"externalUrl": "https://mixdrop.ag/e/vk196d6xfzwwo1",
|
||||
"name": "WebStreamr N/A ⚠️ external",
|
||||
"title": "🌐 Italian 🇮🇹
|
||||
🔗 mixdrop.ag",
|
||||
"name": "WebStreamr 🇮🇹 ⚠️ external",
|
||||
"title": "🔗 mixdrop.ag",
|
||||
},
|
||||
],
|
||||
"ttl": 900000,
|
||||
|
|
|
|||
Loading…
Reference in a new issue