@embedez/downloader 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +12 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/requests/index.d.ts +5 -0
- package/dist/requests/index.js +88 -0
- package/dist/requests/index.js.map +1 -0
- package/dist/responces.d.ts +27 -0
- package/dist/responces.js +53 -0
- package/dist/responces.js.map +1 -0
- package/dist/types.d.ts +204 -0
- package/dist/types.js +334 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.js +85 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +40 -0
- package/readme.md +80 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Utils } from "./utils";
|
|
2
|
+
export declare class EmbedEZ {
|
|
3
|
+
static utils: Utils;
|
|
4
|
+
static config: {
|
|
5
|
+
url: string;
|
|
6
|
+
apiKey: string;
|
|
7
|
+
};
|
|
8
|
+
static setConfig(config: Partial<typeof EmbedEZ.config>): void;
|
|
9
|
+
static getSearchKey: (input: string) => Promise<import("./responces").ErrorResult | import("./responces").JsonResult<import("./types").SearchResult>>;
|
|
10
|
+
static getPreview: (search_key: string) => Promise<import("./responces").ErrorResult | import("./responces").JsonResult<import("./types").EmbedFetch>>;
|
|
11
|
+
static getCombined: (input: string) => Promise<import("./responces").ErrorResult | import("./responces").JsonResult<import("./types").EmbedFetch>>;
|
|
12
|
+
}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmbedEZ = void 0;
|
|
4
|
+
const requests_1 = require("./requests");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
class EmbedEZ {
|
|
7
|
+
static setConfig(config) {
|
|
8
|
+
this.config = Object.assign(Object.assign({}, this.config), config);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.EmbedEZ = EmbedEZ;
|
|
12
|
+
EmbedEZ.utils = new utils_1.Utils();
|
|
13
|
+
EmbedEZ.config = {
|
|
14
|
+
url: 'https://embedez.com',
|
|
15
|
+
apiKey: '',
|
|
16
|
+
};
|
|
17
|
+
EmbedEZ.getSearchKey = requests_1.getSearchKey;
|
|
18
|
+
EmbedEZ.getPreview = requests_1.getPreview;
|
|
19
|
+
EmbedEZ.getCombined = requests_1.getCombined;
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAmE;AACnE,mCAAgC;AAGhC,MAAa,OAAO;IAQlB,MAAM,CAAC,SAAS,CAAC,MAAsC;QACrD,IAAI,CAAC,MAAM,mCAAQ,IAAI,CAAC,MAAM,GAAK,MAAM,CAAE,CAAC;IAC9C,CAAC;;AAVH,0BAgBC;AAfQ,aAAK,GAAG,IAAI,aAAK,EAAE,CAAC;AAEpB,cAAM,GAAG;IACd,GAAG,EAAE,qBAAqB;IAC1B,MAAM,EAAE,EAAE;CACX,CAAA;AAMM,oBAAY,GAAG,uBAAY,CAAA;AAC3B,kBAAU,GAAG,qBAAU,CAAA;AAEvB,mBAAW,GAAG,sBAAW,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ErrorResult, JsonResult } from "../responces";
|
|
2
|
+
import { SearchResult, EmbedFetch } from "../types";
|
|
3
|
+
export declare const getSearchKey: (input: string) => Promise<ErrorResult | JsonResult<SearchResult>>;
|
|
4
|
+
export declare const getPreview: (search_key: string) => Promise<ErrorResult | JsonResult<EmbedFetch>>;
|
|
5
|
+
export declare const getCombined: (input: string) => Promise<ErrorResult | JsonResult<EmbedFetch>>;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.getCombined = exports.getPreview = exports.getSearchKey = void 0;
|
|
16
|
+
const axios_1 = __importDefault(require("axios"));
|
|
17
|
+
const __1 = require("..");
|
|
18
|
+
const responces_1 = require("../responces");
|
|
19
|
+
const getSearchKey = (input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
try {
|
|
21
|
+
const request = yield (0, axios_1.default)({
|
|
22
|
+
url: `${__1.EmbedEZ.config.url}/api/v1/providers/search`,
|
|
23
|
+
method: "get",
|
|
24
|
+
headers: {
|
|
25
|
+
Authorization: `Bearer ${__1.EmbedEZ.config.apiKey}`,
|
|
26
|
+
},
|
|
27
|
+
params: {
|
|
28
|
+
url: input,
|
|
29
|
+
},
|
|
30
|
+
validateStatus: () => true,
|
|
31
|
+
});
|
|
32
|
+
if (!request.data.success) {
|
|
33
|
+
return (0, responces_1.sendErrorAction)(request.status || 500, request.data.message || "bad request");
|
|
34
|
+
}
|
|
35
|
+
return (0, responces_1.sendJsonAction)(request.data.data);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
return (0, responces_1.sendErrorAction)(500, error instanceof Error ? error.message : "Failed to fetch search key");
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
exports.getSearchKey = getSearchKey;
|
|
42
|
+
const getPreview = (search_key) => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
|
+
try {
|
|
44
|
+
const request = yield (0, axios_1.default)({
|
|
45
|
+
url: `${__1.EmbedEZ.config.url}/api/v1/providers/preview`,
|
|
46
|
+
method: "get",
|
|
47
|
+
headers: {
|
|
48
|
+
Authorization: `Bearer ${__1.EmbedEZ.config.apiKey}`,
|
|
49
|
+
},
|
|
50
|
+
params: {
|
|
51
|
+
search_key: search_key,
|
|
52
|
+
},
|
|
53
|
+
validateStatus: () => true,
|
|
54
|
+
});
|
|
55
|
+
if (!request.data.success) {
|
|
56
|
+
return (0, responces_1.sendErrorAction)(request.status || 500, request.data.message || "bad request");
|
|
57
|
+
}
|
|
58
|
+
return (0, responces_1.sendJsonAction)(request.data.data);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
return (0, responces_1.sendErrorAction)(500, error instanceof Error ? error.message : "Failed to fetch preview");
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
exports.getPreview = getPreview;
|
|
65
|
+
const getCombined = (input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
66
|
+
try {
|
|
67
|
+
const request = yield (0, axios_1.default)({
|
|
68
|
+
url: `${__1.EmbedEZ.config.url}/api/v1/providers/combined`,
|
|
69
|
+
method: "get",
|
|
70
|
+
headers: {
|
|
71
|
+
Authorization: `Bearer ${__1.EmbedEZ.config.apiKey}`,
|
|
72
|
+
},
|
|
73
|
+
params: {
|
|
74
|
+
q: input,
|
|
75
|
+
},
|
|
76
|
+
validateStatus: () => true,
|
|
77
|
+
});
|
|
78
|
+
if (!request.data.success) {
|
|
79
|
+
return (0, responces_1.sendErrorAction)(request.status || 500, request.data.message || "bad request");
|
|
80
|
+
}
|
|
81
|
+
return (0, responces_1.sendJsonAction)(request.data.data);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
return (0, responces_1.sendErrorAction)(500, error instanceof Error ? error.message : "Failed to fetch combined data");
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
exports.getCombined = getCombined;
|
|
88
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/requests/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,0BAA6B;AAC7B,4CAKsB;AAGf,MAAM,YAAY,GAAG,CAC1B,KAAa,EACoC,EAAE;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,eAAK,EAAyC;YAClE,GAAG,EAAE,GAAG,WAAO,CAAC,MAAM,CAAC,GAAG,0BAA0B;YACpD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAO,CAAC,MAAM,CAAC,MAAM,EAAE;aACjD;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,KAAK;aACX;YACD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAA,2BAAe,EACpB,OAAO,CAAC,MAAM,IAAI,GAAG,EACrB,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,CACtC,CAAC;QACJ,CAAC;QAED,OAAO,IAAA,0BAAc,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,2BAAe,EACpB,GAAG,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CACtE,CAAC;IACJ,CAAC;AACH,CAAC,CAAA,CAAC;AA9BW,QAAA,YAAY,gBA8BvB;AAEK,MAAM,UAAU,GAAG,CACxB,UAAkB,EAC6B,EAAE;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,eAAK,EAAuC;YAChE,GAAG,EAAE,GAAG,WAAO,CAAC,MAAM,CAAC,GAAG,2BAA2B;YACrD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAO,CAAC,MAAM,CAAC,MAAM,EAAE;aACjD;YACD,MAAM,EAAE;gBACN,UAAU,EAAE,UAAU;aACvB;YACD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAA,2BAAe,EACpB,OAAO,CAAC,MAAM,IAAI,GAAG,EACrB,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,CACtC,CAAC;QACJ,CAAC;QAED,OAAO,IAAA,0BAAc,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,2BAAe,EACpB,GAAG,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CACnE,CAAC;IACJ,CAAC;AACH,CAAC,CAAA,CAAC;AA9BW,QAAA,UAAU,cA8BrB;AAEK,MAAM,WAAW,GAAG,CACzB,KAAa,EACkC,EAAE;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,eAAK,EAAuC;YAChE,GAAG,EAAE,GAAG,WAAO,CAAC,MAAM,CAAC,GAAG,4BAA4B;YACtD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAO,CAAC,MAAM,CAAC,MAAM,EAAE;aACjD;YACD,MAAM,EAAE;gBACN,CAAC,EAAE,KAAK;aACT;YACD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAA,2BAAe,EACpB,OAAO,CAAC,MAAM,IAAI,GAAG,EACrB,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,CACtC,CAAC;QACJ,CAAC;QAED,OAAO,IAAA,0BAAc,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,2BAAe,EACpB,GAAG,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CACzE,CAAC;IACJ,CAAC;AACH,CAAC,CAAA,CAAC;AA9BW,QAAA,WAAW,eA8BtB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sends an error response with the given status and message.
|
|
3
|
+
*
|
|
4
|
+
* @param {number} status - The HTTP status code of the error response.
|
|
5
|
+
* @param {string} message - The error message to be included in the response.
|
|
6
|
+
* @returns {object} - The error response object.
|
|
7
|
+
*/
|
|
8
|
+
export declare const sendErrorResponse: (status: number, message: string) => Response;
|
|
9
|
+
export declare const sendErrorAction: (status: number, message: string) => ErrorResult;
|
|
10
|
+
export type ErrorResult = {
|
|
11
|
+
success: false;
|
|
12
|
+
message: string;
|
|
13
|
+
status?: number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Creates a JSON response object with optional status code.
|
|
17
|
+
*
|
|
18
|
+
* @param {any} data - The data to be included in the response.
|
|
19
|
+
* @param {number} [code] - The optional status code for the response.
|
|
20
|
+
* @returns {object} - The JSON response object.
|
|
21
|
+
*/
|
|
22
|
+
export declare const sendJsonResponse: (data: any, code?: number) => Response;
|
|
23
|
+
export declare const sendJsonAction: (data: any, code?: number) => JsonResult;
|
|
24
|
+
export type JsonResult<T = any> = {
|
|
25
|
+
success: true;
|
|
26
|
+
data: T;
|
|
27
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendJsonAction = exports.sendJsonResponse = exports.sendErrorAction = exports.sendErrorResponse = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Sends an error response with the given status and message.
|
|
6
|
+
*
|
|
7
|
+
* @param {number} status - The HTTP status code of the error response.
|
|
8
|
+
* @param {string} message - The error message to be included in the response.
|
|
9
|
+
* @returns {object} - The error response object.
|
|
10
|
+
*/
|
|
11
|
+
const sendErrorResponse = (status, message) => {
|
|
12
|
+
return Response.json({
|
|
13
|
+
success: false,
|
|
14
|
+
status: status,
|
|
15
|
+
message: message,
|
|
16
|
+
}, {
|
|
17
|
+
status: status,
|
|
18
|
+
statusText: message,
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
exports.sendErrorResponse = sendErrorResponse;
|
|
22
|
+
const sendErrorAction = (status, message) => {
|
|
23
|
+
return {
|
|
24
|
+
success: false,
|
|
25
|
+
status: status,
|
|
26
|
+
message: message,
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
exports.sendErrorAction = sendErrorAction;
|
|
30
|
+
/**
|
|
31
|
+
* Creates a JSON response object with optional status code.
|
|
32
|
+
*
|
|
33
|
+
* @param {any} data - The data to be included in the response.
|
|
34
|
+
* @param {number} [code] - The optional status code for the response.
|
|
35
|
+
* @returns {object} - The JSON response object.
|
|
36
|
+
*/
|
|
37
|
+
const sendJsonResponse = (data, code) => {
|
|
38
|
+
return Response.json({
|
|
39
|
+
success: true,
|
|
40
|
+
data: data,
|
|
41
|
+
}, {
|
|
42
|
+
status: code,
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
exports.sendJsonResponse = sendJsonResponse;
|
|
46
|
+
const sendJsonAction = (data, code) => {
|
|
47
|
+
return {
|
|
48
|
+
success: true,
|
|
49
|
+
data: data,
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
exports.sendJsonAction = sendJsonAction;
|
|
53
|
+
//# sourceMappingURL=responces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responces.js","sourceRoot":"","sources":["../src/responces.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACI,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,EAAE;IACnE,OAAO,QAAQ,CAAC,IAAI,CAClB;QACE,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,OAAO;KACjB,EACD;QACE,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,OAAO;KACpB,CACF,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,iBAAiB,qBAY5B;AACK,MAAM,eAAe,GAAG,CAAC,MAAc,EAAE,OAAe,EAAe,EAAE;IAC9E,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,OAAO;KACjB,CAAA;AACH,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B;AAGF;;;;;;GAMG;AACI,MAAM,gBAAgB,GAAG,CAAC,IAAS,EAAE,IAAa,EAAE,EAAE;IAC3D,OAAO,QAAQ,CAAC,IAAI,CAClB;QACE,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,IAAI;KACX,EACD;QACE,MAAM,EAAE,IAAI;KACb,CACF,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,gBAAgB,oBAU3B;AAEK,MAAM,cAAc,GAAG,CAAC,IAAS,EAAE,IAAa,EAAc,EAAE;IACrE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,IAAI;KACX,CAAA;AACH,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
export type SearchResult = {
|
|
2
|
+
key: string;
|
|
3
|
+
site: ISites;
|
|
4
|
+
views?: number;
|
|
5
|
+
timestamp?: Date;
|
|
6
|
+
detected: Record<string, string | undefined>;
|
|
7
|
+
originalUrl: string;
|
|
8
|
+
};
|
|
9
|
+
export type ISites = "tiktok" | "instagram" | "twitter" | "reddit" | "saved" | "ifunny" | "youtube" | "snapchat" | "imgur" | "facebook" | "bilibili" | "rule34xxx" | "threads" | "weibo";
|
|
10
|
+
export type IMedias = "video" | "photo" | "audio" | "gif" | "cdn";
|
|
11
|
+
export declare let shouldCors: string[];
|
|
12
|
+
export interface EmbedFetchLimited {
|
|
13
|
+
type: ISites;
|
|
14
|
+
key: string;
|
|
15
|
+
incorrectId?: boolean;
|
|
16
|
+
user: {
|
|
17
|
+
name: any;
|
|
18
|
+
displayName: any;
|
|
19
|
+
region: any;
|
|
20
|
+
followers: any;
|
|
21
|
+
friends: any;
|
|
22
|
+
pictures: {
|
|
23
|
+
url?: MediaUrl;
|
|
24
|
+
banner?: MediaUrl;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
content: {};
|
|
28
|
+
preview: {
|
|
29
|
+
text: string;
|
|
30
|
+
img: MediaUrl;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export type Medias = "video" | "photo" | "audio" | "gif" | "cdn";
|
|
34
|
+
export type MediaUrl = {
|
|
35
|
+
site: ISites;
|
|
36
|
+
type: Medias;
|
|
37
|
+
id: string;
|
|
38
|
+
} | {
|
|
39
|
+
site: ISites;
|
|
40
|
+
type: Medias;
|
|
41
|
+
url: string;
|
|
42
|
+
headers?: {
|
|
43
|
+
[key: string]: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
export interface EmbedMedia {
|
|
47
|
+
type: Medias;
|
|
48
|
+
source: MediaObject | MediaUrl;
|
|
49
|
+
thumbnail?: MediaObject | MediaUrl | undefined;
|
|
50
|
+
duration: number | null;
|
|
51
|
+
title?: string;
|
|
52
|
+
height: number;
|
|
53
|
+
width: number;
|
|
54
|
+
}
|
|
55
|
+
export type EmbedFetch = {
|
|
56
|
+
type: ISites;
|
|
57
|
+
key: string;
|
|
58
|
+
shareUrl?: string;
|
|
59
|
+
incorrectId?: boolean;
|
|
60
|
+
user: EmbedFetchUser;
|
|
61
|
+
content: EmbedFetchContent;
|
|
62
|
+
};
|
|
63
|
+
export type EmbedFetchPreview = Omit<EmbedFetch, "content"> & {
|
|
64
|
+
preview: {
|
|
65
|
+
text: string;
|
|
66
|
+
img: MediaObject | MediaUrl | undefined;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
export interface EmbedFetchUser {
|
|
70
|
+
name: any;
|
|
71
|
+
displayName: any;
|
|
72
|
+
region: any;
|
|
73
|
+
followers: any;
|
|
74
|
+
friends: any;
|
|
75
|
+
pictures: {
|
|
76
|
+
url?: MediaObject | MediaUrl;
|
|
77
|
+
banner?: MediaObject | MediaUrl;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export interface EmbedFetchContent {
|
|
81
|
+
key: any;
|
|
82
|
+
link: string;
|
|
83
|
+
text: string | null;
|
|
84
|
+
title: string | null;
|
|
85
|
+
description: string | null;
|
|
86
|
+
postedDate: number | null;
|
|
87
|
+
media: EmbedMedia[];
|
|
88
|
+
generatedMedia?: EmbedMedia[] | null;
|
|
89
|
+
statistics: {
|
|
90
|
+
shares: number;
|
|
91
|
+
comments: number;
|
|
92
|
+
follows: number;
|
|
93
|
+
views: number;
|
|
94
|
+
likes: number;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
export declare class EmbedFetchObject {
|
|
98
|
+
type: ISites;
|
|
99
|
+
key: string;
|
|
100
|
+
user: EmbedUser;
|
|
101
|
+
content: EmbedContent;
|
|
102
|
+
constructor({ type, key, user, content, }: Partial<EmbedFetch> & {
|
|
103
|
+
type: ISites;
|
|
104
|
+
key: string;
|
|
105
|
+
});
|
|
106
|
+
toJSON(): EmbedFetch;
|
|
107
|
+
getPreview(): EmbedFetchPreview;
|
|
108
|
+
}
|
|
109
|
+
export declare class EmbedMediaObject {
|
|
110
|
+
private media;
|
|
111
|
+
constructor({ type, source, thumbnail, duration, height, width, }?: Partial<EmbedMedia>);
|
|
112
|
+
setType(type: Medias): this;
|
|
113
|
+
setUrl(url: MediaUrl | MediaObject): this;
|
|
114
|
+
setTitle(title: string): this;
|
|
115
|
+
setThumbnail(thumbnail: MediaUrl | MediaObject): this;
|
|
116
|
+
setDurationInSeconds(duration: number | null): this;
|
|
117
|
+
setSize(height: number, width: number): this;
|
|
118
|
+
getUrl(props?: {
|
|
119
|
+
ignoreTemp?: boolean;
|
|
120
|
+
EZ_CDN_URL?: string;
|
|
121
|
+
EZ_PROXY_URI?: string;
|
|
122
|
+
}): string;
|
|
123
|
+
getThumbnail(props?: {
|
|
124
|
+
ignoreTemp?: boolean;
|
|
125
|
+
EZ_CDN_URL?: string;
|
|
126
|
+
EZ_PROXY_URI?: string;
|
|
127
|
+
}): string;
|
|
128
|
+
getMedia(): EmbedMedia;
|
|
129
|
+
toJSON(): EmbedMedia;
|
|
130
|
+
}
|
|
131
|
+
export declare class MediaObject {
|
|
132
|
+
id?: string;
|
|
133
|
+
url?: string;
|
|
134
|
+
site?: ISites;
|
|
135
|
+
type?: Medias;
|
|
136
|
+
headers?: {
|
|
137
|
+
[key: string]: string;
|
|
138
|
+
};
|
|
139
|
+
constructor(media?: MediaUrl | MediaObject);
|
|
140
|
+
getUrl(props?: {
|
|
141
|
+
ignoreTemp?: boolean;
|
|
142
|
+
EZ_CDN_URL?: string;
|
|
143
|
+
EZ_PROXY_URI?: string;
|
|
144
|
+
}): string;
|
|
145
|
+
toJSON(): MediaUrl;
|
|
146
|
+
}
|
|
147
|
+
export declare class EmbedStatistics {
|
|
148
|
+
shares: number;
|
|
149
|
+
comments: number;
|
|
150
|
+
follows: number;
|
|
151
|
+
views: number;
|
|
152
|
+
likes: number;
|
|
153
|
+
constructor({ shares, comments, follows, views, likes, }?: Partial<EmbedFetchContent["statistics"]>);
|
|
154
|
+
setShares(shares: number): this;
|
|
155
|
+
setComments(comments: number): this;
|
|
156
|
+
setFollows(follows: number): this;
|
|
157
|
+
setViews(views: number): this;
|
|
158
|
+
setLikes(likes: number): this;
|
|
159
|
+
getStatistics(): EmbedFetchContent["statistics"];
|
|
160
|
+
toJSON(): EmbedFetchContent["statistics"];
|
|
161
|
+
toString(): string;
|
|
162
|
+
}
|
|
163
|
+
export declare class EmbedUser {
|
|
164
|
+
name: string | null;
|
|
165
|
+
displayName: string | null;
|
|
166
|
+
region: string | null;
|
|
167
|
+
followers: number | null;
|
|
168
|
+
friends: number | null;
|
|
169
|
+
pictures: {
|
|
170
|
+
url?: MediaObject | MediaUrl;
|
|
171
|
+
banner?: MediaObject | MediaUrl;
|
|
172
|
+
};
|
|
173
|
+
constructor({ name, displayName, region, followers, friends, pictures, }?: Partial<EmbedFetchUser>);
|
|
174
|
+
setName(name: string): this;
|
|
175
|
+
setDisplayName(displayName: string): this;
|
|
176
|
+
setRegion(region: string): this;
|
|
177
|
+
setFollowers(followers: number): this;
|
|
178
|
+
setFriends(friends: number): this;
|
|
179
|
+
setProfilePicture(url: MediaUrl | MediaObject): this;
|
|
180
|
+
getProfilePicture(): string | undefined;
|
|
181
|
+
setBanner(banner: MediaUrl | MediaObject): this;
|
|
182
|
+
toJSON(): EmbedFetchUser;
|
|
183
|
+
}
|
|
184
|
+
export declare class EmbedContent {
|
|
185
|
+
key: string | null;
|
|
186
|
+
link: string;
|
|
187
|
+
text: string | null;
|
|
188
|
+
title: string | null;
|
|
189
|
+
description: string | null;
|
|
190
|
+
media: EmbedMedia[];
|
|
191
|
+
statistics: EmbedStatistics;
|
|
192
|
+
postedDate: number | null;
|
|
193
|
+
constructor({ key, link, text, title, description, media, statistics, postedDate, }?: Partial<EmbedFetchContent>);
|
|
194
|
+
setKey(key: string): this;
|
|
195
|
+
setLink(link: string): this;
|
|
196
|
+
setText(text: string): this;
|
|
197
|
+
setTitle(title: string): this;
|
|
198
|
+
setDescription(description: string): this;
|
|
199
|
+
addMedia(media: EmbedMedia | EmbedMediaObject): this;
|
|
200
|
+
setMedia(media: (EmbedMedia | EmbedMediaObject)[]): this;
|
|
201
|
+
setPostedDate(postedDate: number | Date | string | null): this;
|
|
202
|
+
setStatistics(statistics: EmbedStatistics): this;
|
|
203
|
+
toJSON(): EmbedFetchContent;
|
|
204
|
+
}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmbedContent = exports.EmbedUser = exports.EmbedStatistics = exports.MediaObject = exports.EmbedMediaObject = exports.EmbedFetchObject = exports.shouldCors = void 0;
|
|
4
|
+
exports.shouldCors = [
|
|
5
|
+
"instagram",
|
|
6
|
+
"twitter",
|
|
7
|
+
"ifunny",
|
|
8
|
+
"imgur",
|
|
9
|
+
"bilibili",
|
|
10
|
+
"threads",
|
|
11
|
+
"weibo",
|
|
12
|
+
];
|
|
13
|
+
class EmbedFetchObject {
|
|
14
|
+
constructor({ type, key, user, content, }) {
|
|
15
|
+
this.type = type;
|
|
16
|
+
this.key = key;
|
|
17
|
+
this.user = new EmbedUser(user);
|
|
18
|
+
this.content = new EmbedContent(content);
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
toJSON() {
|
|
22
|
+
if (!this.key)
|
|
23
|
+
throw new Error("Key is required");
|
|
24
|
+
return {
|
|
25
|
+
type: this.type,
|
|
26
|
+
key: this.key,
|
|
27
|
+
user: this.user.toJSON(),
|
|
28
|
+
content: this.content.toJSON(),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
getPreview() {
|
|
32
|
+
var _a, _b, _c, _d;
|
|
33
|
+
const data = this.toJSON();
|
|
34
|
+
const content = data.content;
|
|
35
|
+
const img = ((_a = content.media.find(({ type }) => type == "video")) === null || _a === void 0 ? void 0 : _a.thumbnail) ||
|
|
36
|
+
((_b = content.media.find(({ type }) => type == "photo")) === null || _b === void 0 ? void 0 : _b.thumbnail) ||
|
|
37
|
+
((_c = content.media.find(({ type }) => type == "gif")) === null || _c === void 0 ? void 0 : _c.thumbnail);
|
|
38
|
+
delete data.content;
|
|
39
|
+
return Object.assign(Object.assign({}, data), { preview: {
|
|
40
|
+
text: ((_d = content.description) === null || _d === void 0 ? void 0 : _d.slice(0, 50)) || "",
|
|
41
|
+
img: img,
|
|
42
|
+
} });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.EmbedFetchObject = EmbedFetchObject;
|
|
46
|
+
class EmbedMediaObject {
|
|
47
|
+
constructor({ type, source, thumbnail, duration, height, width, } = {}) {
|
|
48
|
+
this.media = {
|
|
49
|
+
type: type !== null && type !== void 0 ? type : "video", // Default value
|
|
50
|
+
source: source !== null && source !== void 0 ? source : new MediaObject(),
|
|
51
|
+
thumbnail: thumbnail !== null && thumbnail !== void 0 ? thumbnail : undefined,
|
|
52
|
+
duration: duration !== null && duration !== void 0 ? duration : null,
|
|
53
|
+
height: height !== null && height !== void 0 ? height : 0,
|
|
54
|
+
width: width !== null && width !== void 0 ? width : 0,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
setType(type) {
|
|
58
|
+
this.media.type = type;
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
setUrl(url) {
|
|
62
|
+
this.media.source = new MediaObject(url);
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
setTitle(title) {
|
|
66
|
+
this.media.title = title;
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
setThumbnail(thumbnail) {
|
|
70
|
+
this.media.thumbnail = new MediaObject(thumbnail);
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
setDurationInSeconds(duration) {
|
|
74
|
+
this.media.duration = duration;
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
setSize(height, width) {
|
|
78
|
+
this.media.height = height;
|
|
79
|
+
this.media.width = width;
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
getUrl(props) {
|
|
83
|
+
return new MediaObject(this.media.source).getUrl(props);
|
|
84
|
+
}
|
|
85
|
+
getThumbnail(props) {
|
|
86
|
+
return new MediaObject(this.media.thumbnail).getUrl(props);
|
|
87
|
+
}
|
|
88
|
+
getMedia() {
|
|
89
|
+
return this.media;
|
|
90
|
+
}
|
|
91
|
+
toJSON() {
|
|
92
|
+
return Object.assign(Object.assign({}, this.media), { source: new MediaObject(this.media.source).toJSON(), thumbnail: this.media.thumbnail
|
|
93
|
+
? new MediaObject(this.media.thumbnail).toJSON()
|
|
94
|
+
: undefined });
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.EmbedMediaObject = EmbedMediaObject;
|
|
98
|
+
class MediaObject {
|
|
99
|
+
constructor(media) {
|
|
100
|
+
if (!media)
|
|
101
|
+
return;
|
|
102
|
+
this.type = media.type;
|
|
103
|
+
this.id = "id" in media ? media.id : undefined;
|
|
104
|
+
this.url = "url" in media ? media.url : undefined;
|
|
105
|
+
this.site = "site" in media ? media.site : undefined;
|
|
106
|
+
this.headers = "headers" in media ? media.headers : undefined;
|
|
107
|
+
}
|
|
108
|
+
getUrl(props) {
|
|
109
|
+
const { ignoreTemp, EZ_CDN_URL = process.env.EZ_CDN_URL, EZ_PROXY_URI = process.env.EZ_PROXY_URI, } = props !== null && props !== void 0 ? props : {};
|
|
110
|
+
if (this.id) {
|
|
111
|
+
return `${EZ_CDN_URL}/view?id=${this.id}&ignoreTemp=${ignoreTemp}&type=${this.type}`;
|
|
112
|
+
}
|
|
113
|
+
if (this.url) {
|
|
114
|
+
if ((this.site && exports.shouldCors.includes(this.site)) || this.headers) {
|
|
115
|
+
const url = encodeURIComponent(this.url);
|
|
116
|
+
const headers = encodeURIComponent(JSON.stringify(this.headers || {}));
|
|
117
|
+
return `${EZ_PROXY_URI}/advanced?url=${url}&headers=${headers}`;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
return this.url;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return "";
|
|
124
|
+
}
|
|
125
|
+
toJSON() {
|
|
126
|
+
if ((!this.id && !this.url) || !this.site || !this.type)
|
|
127
|
+
throw new Error("Invalid MediaObject attempted to be converted to json");
|
|
128
|
+
if (this.id) {
|
|
129
|
+
return {
|
|
130
|
+
id: this.id,
|
|
131
|
+
site: this.site,
|
|
132
|
+
type: this.type,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
if (this.url) {
|
|
136
|
+
return {
|
|
137
|
+
url: this.url,
|
|
138
|
+
site: this.site,
|
|
139
|
+
type: this.type,
|
|
140
|
+
headers: this.headers,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
throw new Error("Invalid MediaObject attempted to be converted to json");
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.MediaObject = MediaObject;
|
|
147
|
+
class EmbedStatistics {
|
|
148
|
+
constructor({ shares, comments, follows, views, likes, } = {}) {
|
|
149
|
+
this.shares = shares !== null && shares !== void 0 ? shares : 0;
|
|
150
|
+
this.comments = comments !== null && comments !== void 0 ? comments : 0;
|
|
151
|
+
this.follows = follows !== null && follows !== void 0 ? follows : 0;
|
|
152
|
+
this.views = views !== null && views !== void 0 ? views : 0;
|
|
153
|
+
this.likes = likes !== null && likes !== void 0 ? likes : 0;
|
|
154
|
+
}
|
|
155
|
+
setShares(shares) {
|
|
156
|
+
this.shares = shares;
|
|
157
|
+
return this;
|
|
158
|
+
}
|
|
159
|
+
setComments(comments) {
|
|
160
|
+
this.comments = comments;
|
|
161
|
+
return this;
|
|
162
|
+
}
|
|
163
|
+
setFollows(follows) {
|
|
164
|
+
this.follows = follows;
|
|
165
|
+
return this;
|
|
166
|
+
}
|
|
167
|
+
setViews(views) {
|
|
168
|
+
this.views = views;
|
|
169
|
+
return this;
|
|
170
|
+
}
|
|
171
|
+
setLikes(likes) {
|
|
172
|
+
this.likes = likes;
|
|
173
|
+
return this;
|
|
174
|
+
}
|
|
175
|
+
getStatistics() {
|
|
176
|
+
return {
|
|
177
|
+
shares: this.shares,
|
|
178
|
+
comments: this.comments,
|
|
179
|
+
follows: this.follows,
|
|
180
|
+
views: this.views,
|
|
181
|
+
likes: this.likes,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
toJSON() {
|
|
185
|
+
return this.getStatistics();
|
|
186
|
+
}
|
|
187
|
+
toString() {
|
|
188
|
+
return JSON.stringify(this.getStatistics());
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
exports.EmbedStatistics = EmbedStatistics;
|
|
192
|
+
class EmbedUser {
|
|
193
|
+
constructor({ name, displayName, region, followers, friends, pictures, } = {}) {
|
|
194
|
+
this.name = name !== null && name !== void 0 ? name : null;
|
|
195
|
+
this.displayName = displayName !== null && displayName !== void 0 ? displayName : null;
|
|
196
|
+
this.region = region !== null && region !== void 0 ? region : null;
|
|
197
|
+
this.followers = followers !== null && followers !== void 0 ? followers : null;
|
|
198
|
+
this.friends = friends !== null && friends !== void 0 ? friends : null;
|
|
199
|
+
this.pictures = pictures !== null && pictures !== void 0 ? pictures : {
|
|
200
|
+
url: undefined,
|
|
201
|
+
banner: undefined,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
setName(name) {
|
|
205
|
+
this.name = name;
|
|
206
|
+
return this;
|
|
207
|
+
}
|
|
208
|
+
setDisplayName(displayName) {
|
|
209
|
+
this.displayName = displayName;
|
|
210
|
+
return this;
|
|
211
|
+
}
|
|
212
|
+
setRegion(region) {
|
|
213
|
+
this.region = region;
|
|
214
|
+
return this;
|
|
215
|
+
}
|
|
216
|
+
setFollowers(followers) {
|
|
217
|
+
this.followers = followers;
|
|
218
|
+
return this;
|
|
219
|
+
}
|
|
220
|
+
setFriends(friends) {
|
|
221
|
+
this.friends = friends;
|
|
222
|
+
return this;
|
|
223
|
+
}
|
|
224
|
+
setProfilePicture(url) {
|
|
225
|
+
this.pictures.url = url;
|
|
226
|
+
return this;
|
|
227
|
+
}
|
|
228
|
+
getProfilePicture() {
|
|
229
|
+
if (!this.pictures.url)
|
|
230
|
+
return undefined;
|
|
231
|
+
const url = new MediaObject(this.pictures.url);
|
|
232
|
+
return url.getUrl();
|
|
233
|
+
}
|
|
234
|
+
setBanner(banner) {
|
|
235
|
+
this.pictures.banner = banner;
|
|
236
|
+
return this;
|
|
237
|
+
}
|
|
238
|
+
toJSON() {
|
|
239
|
+
return {
|
|
240
|
+
name: this.name,
|
|
241
|
+
displayName: this.displayName,
|
|
242
|
+
region: this.region,
|
|
243
|
+
followers: this.followers,
|
|
244
|
+
friends: this.friends,
|
|
245
|
+
pictures: {
|
|
246
|
+
url: this.pictures.url
|
|
247
|
+
? new MediaObject(this.pictures.url).toJSON()
|
|
248
|
+
: undefined,
|
|
249
|
+
banner: this.pictures.banner
|
|
250
|
+
? new MediaObject(this.pictures.banner).toJSON()
|
|
251
|
+
: undefined,
|
|
252
|
+
},
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
exports.EmbedUser = EmbedUser;
|
|
257
|
+
class EmbedContent {
|
|
258
|
+
constructor({ key, link, text, title, description, media, statistics, postedDate, } = {}) {
|
|
259
|
+
this.key = key !== null && key !== void 0 ? key : null;
|
|
260
|
+
this.link = link !== null && link !== void 0 ? link : "";
|
|
261
|
+
this.text = text !== null && text !== void 0 ? text : null;
|
|
262
|
+
this.title = title !== null && title !== void 0 ? title : null;
|
|
263
|
+
this.description = description !== null && description !== void 0 ? description : null;
|
|
264
|
+
this.media = media !== null && media !== void 0 ? media : [];
|
|
265
|
+
this.statistics = new EmbedStatistics(statistics);
|
|
266
|
+
this.postedDate = postedDate !== null && postedDate !== void 0 ? postedDate : null;
|
|
267
|
+
}
|
|
268
|
+
setKey(key) {
|
|
269
|
+
this.key = key;
|
|
270
|
+
return this;
|
|
271
|
+
}
|
|
272
|
+
setLink(link) {
|
|
273
|
+
this.link = link;
|
|
274
|
+
return this;
|
|
275
|
+
}
|
|
276
|
+
setText(text) {
|
|
277
|
+
this.text = text;
|
|
278
|
+
return this;
|
|
279
|
+
}
|
|
280
|
+
setTitle(title) {
|
|
281
|
+
this.title = title;
|
|
282
|
+
return this;
|
|
283
|
+
}
|
|
284
|
+
setDescription(description) {
|
|
285
|
+
this.description = description;
|
|
286
|
+
return this;
|
|
287
|
+
}
|
|
288
|
+
addMedia(media) {
|
|
289
|
+
this.media.push(media instanceof EmbedMediaObject ? media.getMedia() : media);
|
|
290
|
+
return this;
|
|
291
|
+
}
|
|
292
|
+
setMedia(media) {
|
|
293
|
+
this.media = media
|
|
294
|
+
.map((m) => (m instanceof EmbedMediaObject ? m.toJSON() : m))
|
|
295
|
+
.filter((m) => m !== undefined);
|
|
296
|
+
return this;
|
|
297
|
+
}
|
|
298
|
+
setPostedDate(postedDate) {
|
|
299
|
+
if (typeof postedDate === "string") {
|
|
300
|
+
this.postedDate = new Date(postedDate).getTime();
|
|
301
|
+
return this;
|
|
302
|
+
}
|
|
303
|
+
else if (typeof postedDate === "number") {
|
|
304
|
+
this.postedDate = postedDate;
|
|
305
|
+
return this;
|
|
306
|
+
}
|
|
307
|
+
else if (postedDate instanceof Date) {
|
|
308
|
+
this.postedDate = postedDate.getTime();
|
|
309
|
+
return this;
|
|
310
|
+
}
|
|
311
|
+
this.postedDate = null;
|
|
312
|
+
return this;
|
|
313
|
+
}
|
|
314
|
+
setStatistics(statistics) {
|
|
315
|
+
this.statistics = statistics;
|
|
316
|
+
return this;
|
|
317
|
+
}
|
|
318
|
+
toJSON() {
|
|
319
|
+
return structuredClone({
|
|
320
|
+
key: this.key,
|
|
321
|
+
link: this.link,
|
|
322
|
+
text: this.text,
|
|
323
|
+
title: this.title,
|
|
324
|
+
description: this.description,
|
|
325
|
+
postedDate: this.postedDate,
|
|
326
|
+
media: this.media
|
|
327
|
+
.map((m) => new EmbedMediaObject(m).toJSON())
|
|
328
|
+
.filter((m) => m !== undefined),
|
|
329
|
+
statistics: this.statistics.toJSON(),
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
exports.EmbedContent = EmbedContent;
|
|
334
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type ExtractParams<T extends string> = T extends `${infer Prefix}:${infer Param}/${infer Rest}` ? {
|
|
2
|
+
[K in Param | keyof ExtractParams<Rest>]: string;
|
|
3
|
+
} : T extends `${infer Prefix}:${infer Param}` ? {
|
|
4
|
+
[K in Param]: string;
|
|
5
|
+
} : {};
|
|
6
|
+
export declare class Utils {
|
|
7
|
+
private static apiSites;
|
|
8
|
+
private static fetchPromise;
|
|
9
|
+
private static readonly hardcodedSites;
|
|
10
|
+
private static fetchApiSites;
|
|
11
|
+
checkForSocialMediaContent(input: string): boolean;
|
|
12
|
+
extractIdFromUrl<Pattern extends string>(pattern: Pattern, url: string): ExtractParams<Pattern> | {};
|
|
13
|
+
extractKeysFromUrlTemplate(urlTemplate: string): string[];
|
|
14
|
+
replaceKeysWithValues(urlTemplate: string, extractedIds: Record<string, string>): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Utils = void 0;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
class Utils {
|
|
6
|
+
static fetchApiSites() {
|
|
7
|
+
if (this.fetchPromise)
|
|
8
|
+
return this.fetchPromise;
|
|
9
|
+
this.fetchPromise = fetch(__1.EmbedEZ.config.url + '/api')
|
|
10
|
+
.then(response => response.json())
|
|
11
|
+
.then(data => {
|
|
12
|
+
console.info(`[EmbedEZ.ts Fetching API sites]`, data.data);
|
|
13
|
+
if (!data.success)
|
|
14
|
+
console.error(`[EmbedEZ.ts Failed to fetch API sites]`, data.message);
|
|
15
|
+
const sfwSites = data.data.sfw || ['TikTok', 'Instagram', 'Twitter', 'Reddit', 'iFunny', 'YouTube', 'Snapchat', 'Imgur', 'Facebook', 'Bilibili', 'Threads', 'Weibo'];
|
|
16
|
+
const nsfwSites = data.data.nsfw || ['Danbooru', 'Derpibooru', 'e621', 'e926', 'Gelbooru', 'Realbooru', 'Rule34xxx', 'Safebooru', 'Hypnohub', 'Konachan', 'Yandere', 'Paheal', 'Xbooru', 'TBIB'];
|
|
17
|
+
const allSites = [...sfwSites, ...nsfwSites];
|
|
18
|
+
this.apiSites = allSites.map((site) => {
|
|
19
|
+
let processedSite = site.toLowerCase();
|
|
20
|
+
if (processedSite === 'youtube')
|
|
21
|
+
processedSite = 'youtu\\w*';
|
|
22
|
+
if (processedSite === 'twitter')
|
|
23
|
+
processedSite = '(twitter|x\\.com)';
|
|
24
|
+
if (processedSite === 'rule34xxx')
|
|
25
|
+
processedSite = 'rule34';
|
|
26
|
+
return processedSite.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
27
|
+
});
|
|
28
|
+
console.info(`[EmbedEZ.ts Fetched API sites]`, this.apiSites);
|
|
29
|
+
})
|
|
30
|
+
.catch(error => {
|
|
31
|
+
console.warn('[EmbedEZ.ts Failed to fetch API sites, using hardcoded fallback:', error);
|
|
32
|
+
this.apiSites = [];
|
|
33
|
+
});
|
|
34
|
+
return this.fetchPromise;
|
|
35
|
+
}
|
|
36
|
+
checkForSocialMediaContent(input) {
|
|
37
|
+
if (Utils.apiSites === null) {
|
|
38
|
+
Utils.fetchApiSites();
|
|
39
|
+
}
|
|
40
|
+
const apiSites = Utils.apiSites || [];
|
|
41
|
+
const allSites = [...Utils.hardcodedSites, ...apiSites];
|
|
42
|
+
const uniqueSites = [...new Set(allSites)];
|
|
43
|
+
const regex = new RegExp(`(${uniqueSites.join('|')})`, 'gi');
|
|
44
|
+
const check = input.match(regex);
|
|
45
|
+
return check !== null;
|
|
46
|
+
}
|
|
47
|
+
extractIdFromUrl(pattern, url) {
|
|
48
|
+
const paramNames = pattern.match(/:[a-zA-Z0-9_]+/g) || [];
|
|
49
|
+
const regexPattern = pattern.replace(/:[a-zA-Z0-9_]+/g, "([.a-zA-Z0-9_-]+)");
|
|
50
|
+
const regex = new RegExp(regexPattern);
|
|
51
|
+
const match = url.match(regex);
|
|
52
|
+
if (match) {
|
|
53
|
+
const extractedValues = match.slice(1);
|
|
54
|
+
if (extractedValues.length !== paramNames.length) {
|
|
55
|
+
throw new Error("Mismatch in the number of extracted values and placeholders.");
|
|
56
|
+
}
|
|
57
|
+
const result = {};
|
|
58
|
+
paramNames.forEach((paramName, index) => {
|
|
59
|
+
const paramNameKey = paramName.slice(1);
|
|
60
|
+
const extractedValue = extractedValues[index];
|
|
61
|
+
result[paramNameKey] = extractedValue;
|
|
62
|
+
});
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
return {};
|
|
66
|
+
}
|
|
67
|
+
extractKeysFromUrlTemplate(urlTemplate) {
|
|
68
|
+
const keyRegex = /{([^{}]+)}/g;
|
|
69
|
+
const matches = urlTemplate.match(keyRegex);
|
|
70
|
+
const result = matches ? matches.map((match) => match.slice(1, -1)) : [];
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
replaceKeysWithValues(urlTemplate, extractedIds) {
|
|
74
|
+
return urlTemplate.replace(/\{([^{}]+)\}/g, (match, key) => extractedIds[key] || match);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.Utils = Utils;
|
|
78
|
+
Utils.apiSites = null;
|
|
79
|
+
Utils.fetchPromise = null;
|
|
80
|
+
Utils.hardcodedSites = [
|
|
81
|
+
'tiktok', 'instagram', 'twitter', 'x\\.com', 'snapchat', 'reddit', 'ifunny',
|
|
82
|
+
'youtu\\w*', 'imgur', 'bsky', 'facebook', 'threads', 'bilibili', 'rule34',
|
|
83
|
+
'weibo', 'bluesky', 'pinterest'
|
|
84
|
+
];
|
|
85
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@embedez/downloader",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"start": "ts-node src/index.ts",
|
|
12
|
+
"test": "ts-node test.ts",
|
|
13
|
+
"build": "rimraf dist && tsc -p tsconfig.json",
|
|
14
|
+
"build:publish": "npm run build && npm publish"
|
|
15
|
+
},
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/embedez/embedez.ts.git"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"embedez"
|
|
22
|
+
],
|
|
23
|
+
"author": "embedez",
|
|
24
|
+
"authors": [
|
|
25
|
+
"https://github.com/embedez"
|
|
26
|
+
],
|
|
27
|
+
"license": "ISC",
|
|
28
|
+
"bugs": {
|
|
29
|
+
"url": "https://github.com/embedez/embedez.ts/issues"
|
|
30
|
+
},
|
|
31
|
+
"homepage": "https://github.com/embedez/embedez.ts#readme",
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"axios": "^1.7.2"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"rimraf": "^5.0.7",
|
|
37
|
+
"ts-node": "^10.9.2",
|
|
38
|
+
"typescript": "^5.4.5"
|
|
39
|
+
}
|
|
40
|
+
}
|
package/readme.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# EmbedEZ.ts
|
|
2
|
+
|
|
3
|
+
EmbedEZ.ts is a TypeScript wrapper for the EmbedEZ API, designed to simplify the integration of rich media previews into your applications. The EmbedEZ API documentation can be found [here](https://embedez.com/docs).
|
|
4
|
+
|
|
5
|
+
## Supported Platforms
|
|
6
|
+
|
|
7
|
+
EmbedEZ.ts supports retrieving posts and media from the following platforms:
|
|
8
|
+
- TikTok
|
|
9
|
+
- Instagram
|
|
10
|
+
- Twitter
|
|
11
|
+
- Reddit
|
|
12
|
+
- YouTube
|
|
13
|
+
- Facebook
|
|
14
|
+
- Bilibili
|
|
15
|
+
- iFunny
|
|
16
|
+
- Saved posts
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
To install EmbedEZ.ts, you can use npm:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install embedez.ts
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Example Usage
|
|
27
|
+
|
|
28
|
+
### Setting Up
|
|
29
|
+
|
|
30
|
+
First, import EmbedEZ and configure it with your API key and API endpoint URL:
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
import { EmbedEZ } from "embedez.ts";
|
|
34
|
+
|
|
35
|
+
EmbedEZ.setConfig({
|
|
36
|
+
apiKey: process.env.EZ_APIKEY,
|
|
37
|
+
url: "https://embedez.com", // OPTIONAL: Defaults to https://embedez.com
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Using EmbedEZ Functions
|
|
42
|
+
|
|
43
|
+
Here's an example of how to use EmbedEZ.ts to check for social media content, retrieve a search key, and get a media preview:
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
import { EmbedEZ } from "embedez.ts";
|
|
47
|
+
|
|
48
|
+
async function test(message: string) {
|
|
49
|
+
// Check if the message contains social media content
|
|
50
|
+
const isValid = EmbedEZ.utils.checkForSocialMediaContent(message);
|
|
51
|
+
console.log("isValid:", isValid);
|
|
52
|
+
|
|
53
|
+
// Get the search key from the message
|
|
54
|
+
const searchKeyResponse = await EmbedEZ.getSearchKey(message);
|
|
55
|
+
console.log("searchKey:", searchKeyResponse);
|
|
56
|
+
|
|
57
|
+
if (searchKeyResponse.success) {
|
|
58
|
+
// Get the media preview using the retrieved search key
|
|
59
|
+
const preview = await EmbedEZ.getPreview(searchKeyResponse.data.key);
|
|
60
|
+
console.log("preview:", preview);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Example usage
|
|
65
|
+
const message = "hello yall look at this tiktok video https://www.tiktok.com/@truth.filmz/video/7355123993017421089";
|
|
66
|
+
test(message);
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
In this example:
|
|
70
|
+
|
|
71
|
+
- **setConfig**: Configures EmbedEZ with your API key and endpoint URL.
|
|
72
|
+
- **checkForSocialMediaContent**: Checks if the provided message contains social media content.
|
|
73
|
+
- **getSearchKey**: Retrieves a search key based on the social media content found in the message.
|
|
74
|
+
- **getPreview**: Fetches a media preview using the search key obtained.
|
|
75
|
+
|
|
76
|
+
Make sure to replace `process.env.EZ_APIKEY` with your actual API key.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
Please note that this is a simplified example and you may need to adjust the code to fit your specific use case. Data will be returned with no api key yet the responses will be limited.
|