comty.js 0.1.0 → 0.46.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/{src → dist}/handlers/measurePing.js +3 -3
- package/{src → dist}/handlers/request.js +8 -8
- package/{src → dist}/helpers/handleAfterRequest.js +3 -3
- package/{src → dist}/helpers/handleBeforeRequest.js +1 -1
- package/dist/helpers/handleRegenerationEvent.js +39 -0
- package/dist/helpers/withSettings.js +25 -0
- package/{src → dist}/helpers/withStorage.js +4 -4
- package/{src → dist}/hooks/useRequest/index.js +6 -6
- package/{src → dist}/index.js +20 -20
- package/dist/models/auth/index.js +53 -0
- package/dist/models/feed/index.js +82 -0
- package/dist/models/follows/index.js +48 -0
- package/dist/models/index.js +44 -0
- package/dist/models/livestream/index.js +84 -0
- package/dist/models/playlists/index.js +48 -0
- package/dist/models/post/index.js +169 -0
- package/dist/models/session/index.js +126 -0
- package/{src → dist}/models/sync/cores/spotifyCore.js +2 -2
- package/dist/models/sync/index.js +11 -0
- package/dist/models/user/index.js +159 -0
- package/dist/models/widget/index.js +18 -0
- package/{src → dist}/remotes.js +3 -3
- package/package.json +23 -20
- package/src/helpers/handleRegenerationEvent.js +0 -39
- package/src/helpers/withSettings.js +0 -25
- package/src/models/auth/index.js +0 -53
- package/src/models/feed/index.js +0 -82
- package/src/models/follows/index.js +0 -48
- package/src/models/index.js +0 -44
- package/src/models/livestream/index.js +0 -84
- package/src/models/playlists/index.js +0 -48
- package/src/models/post/index.js +0 -169
- package/src/models/session/index.js +0 -126
- package/src/models/sync/index.js +0 -11
- package/src/models/user/index.js +0 -159
- package/src/models/widget/index.js +0 -18
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('./request'); var _request2 = _interopRequireDefault(_request);
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
exports. default = async () => {
|
|
4
4
|
const timings = {}
|
|
5
5
|
|
|
6
6
|
const promises = [
|
|
7
7
|
new Promise(async (resolve) => {
|
|
8
8
|
const start = Date.now()
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
_request2.default.call(void 0, {
|
|
11
11
|
method: "GET",
|
|
12
12
|
url: "/ping",
|
|
13
13
|
})
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _handleBeforeRequest = require('../helpers/handleBeforeRequest'); var _handleBeforeRequest2 = _interopRequireDefault(_handleBeforeRequest);
|
|
2
|
+
var _handleAfterRequest = require('../helpers/handleAfterRequest'); var _handleAfterRequest2 = _interopRequireDefault(_handleAfterRequest);
|
|
3
|
+
var _session = require('../models/session'); var _session2 = _interopRequireDefault(_session);
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
exports. default = async (
|
|
6
6
|
request = {
|
|
7
7
|
method: "GET",
|
|
8
8
|
},
|
|
9
9
|
...args
|
|
10
10
|
) => {
|
|
11
|
-
const instance = request.instance
|
|
11
|
+
const instance = _nullishCoalesce(request.instance, () => ( __comty_shared_state.instances.default))
|
|
12
12
|
|
|
13
13
|
if (!instance) {
|
|
14
14
|
throw new Error("No instance provided")
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
// handle before request
|
|
18
|
-
await
|
|
18
|
+
await _handleBeforeRequest2.default.call(void 0, request)
|
|
19
19
|
|
|
20
20
|
if (typeof request === "string") {
|
|
21
21
|
request = {
|
|
@@ -30,7 +30,7 @@ export default async (
|
|
|
30
30
|
let result = null
|
|
31
31
|
|
|
32
32
|
const makeRequest = async () => {
|
|
33
|
-
const sessionToken = await
|
|
33
|
+
const sessionToken = await _session2.default.token
|
|
34
34
|
|
|
35
35
|
if (sessionToken) {
|
|
36
36
|
request.headers["Authorization"] = `${globalThis.isServerMode ? "Server" : "Bearer"} ${sessionToken}`
|
|
@@ -49,7 +49,7 @@ export default async (
|
|
|
49
49
|
await makeRequest()
|
|
50
50
|
|
|
51
51
|
// handle after request
|
|
52
|
-
await
|
|
52
|
+
await _handleAfterRequest2.default.call(void 0, result, makeRequest)
|
|
53
53
|
|
|
54
54
|
// if error, throw it
|
|
55
55
|
if (result instanceof Error) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _handleRegenerationEvent = require('./handleRegenerationEvent'); var _handleRegenerationEvent2 = _interopRequireDefault(_handleRegenerationEvent);
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
exports. default = async (data, callback) => {
|
|
4
4
|
// handle 401, 403 responses
|
|
5
5
|
if (data instanceof Error) {
|
|
6
6
|
if (data.code && (data.code === "ECONNABORTED" || data.code === "ERR_NETWORK")) {
|
|
@@ -14,7 +14,7 @@ export default async (data, callback) => {
|
|
|
14
14
|
console.log(`Session expired, but the server issued a refresh token, handling regeneration event`)
|
|
15
15
|
|
|
16
16
|
// handle regeneration event
|
|
17
|
-
await
|
|
17
|
+
await _handleRegenerationEvent2.default.call(void 0, data.response.data.refreshToken)
|
|
18
18
|
|
|
19
19
|
return await callback()
|
|
20
20
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});exports. default = async (request) => {
|
|
2
2
|
if (__comty_shared_state.onExpiredExceptionEvent) {
|
|
3
3
|
if (__comty_shared_state.excludedExpiredExceptionURL.includes(request.url)) return
|
|
4
4
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _session = require('../models/session'); var _session2 = _interopRequireDefault(_session);
|
|
2
|
+
var _request = require('../handlers/request'); var _request2 = _interopRequireDefault(_request);
|
|
3
|
+
|
|
4
|
+
exports. default = async (refreshToken) =>{
|
|
5
|
+
__comty_shared_state.eventBus.emit("session.expiredExceptionEvent", refreshToken)
|
|
6
|
+
|
|
7
|
+
__comty_shared_state.onExpiredExceptionEvent = true
|
|
8
|
+
|
|
9
|
+
const expiredToken = await _session2.default.token
|
|
10
|
+
|
|
11
|
+
// send request to regenerate token
|
|
12
|
+
const response = await _request2.default.call(void 0, {
|
|
13
|
+
method: "POST",
|
|
14
|
+
url: "/session/regenerate",
|
|
15
|
+
data: {
|
|
16
|
+
expiredToken: expiredToken,
|
|
17
|
+
refreshToken,
|
|
18
|
+
}
|
|
19
|
+
}).catch((error) => {
|
|
20
|
+
console.error(`Failed to regenerate token: ${error.message}`)
|
|
21
|
+
return false
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
if (!response) {
|
|
25
|
+
return __comty_shared_state.eventBus.emit("session.invalid", "Failed to regenerate token")
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (!_optionalChain([response, 'access', _ => _.data, 'optionalAccess', _2 => _2.token])) {
|
|
29
|
+
return __comty_shared_state.eventBus.emit("session.invalid", "Failed to regenerate token, invalid server response.")
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// set new token
|
|
33
|
+
_session2.default.token = response.data.token
|
|
34
|
+
|
|
35
|
+
__comty_shared_state.onExpiredExceptionEvent = false
|
|
36
|
+
|
|
37
|
+
// emit event
|
|
38
|
+
__comty_shared_state.eventBus.emit("session.regenerated")
|
|
39
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } class Settings {
|
|
2
|
+
static __initStatic() {this.get = (key) => {
|
|
3
|
+
if (typeof window === "undefined") {
|
|
4
|
+
return null
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
return _optionalChain([window, 'optionalAccess', _16 => _16.app, 'optionalAccess', _17 => _17.cores, 'optionalAccess', _18 => _18.settings, 'access', _19 => _19.get, 'call', _20 => _20(key)])
|
|
8
|
+
}}
|
|
9
|
+
|
|
10
|
+
static __initStatic2() {this.set = (key, value) => {
|
|
11
|
+
if (typeof window === "undefined") {
|
|
12
|
+
return null
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return _optionalChain([window, 'optionalAccess', _21 => _21.app, 'optionalAccess', _22 => _22.cores, 'optionalAccess', _23 => _23.settings, 'access', _24 => _24.set, 'call', _25 => _25(key, value)])
|
|
16
|
+
}}
|
|
17
|
+
|
|
18
|
+
static __initStatic3() {this.is = (key) => {
|
|
19
|
+
if (typeof window === "undefined") {
|
|
20
|
+
return null
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return _optionalChain([window, 'optionalAccess', _26 => _26.app, 'optionalAccess', _27 => _27.cores, 'optionalAccess', _28 => _28.settings, 'access', _29 => _29.is, 'call', _30 => _30(key)])
|
|
24
|
+
}}
|
|
25
|
+
} Settings.__initStatic(); Settings.__initStatic2(); Settings.__initStatic3(); exports.default = Settings;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _jscookie = require('js-cookie'); var _jscookie2 = _interopRequireDefault(_jscookie);
|
|
2
2
|
|
|
3
3
|
class InternalStorage {
|
|
4
4
|
#storage = {}
|
|
@@ -14,12 +14,12 @@ class InternalStorage {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
class Storage {
|
|
18
18
|
static get engine() {
|
|
19
19
|
// check if is running in browser, if is import js-cookie
|
|
20
20
|
// else use in-memory safe storage
|
|
21
21
|
if (typeof window !== "undefined") {
|
|
22
|
-
return
|
|
22
|
+
return _jscookie2.default
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
if (!globalThis.__comty_shared_state["_internal_storage"]) {
|
|
@@ -28,4 +28,4 @@ export default class Storage {
|
|
|
28
28
|
|
|
29
29
|
return globalThis.__comty_shared_state["_internal_storage"]
|
|
30
30
|
}
|
|
31
|
-
}
|
|
31
|
+
} exports.default = Storage;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
exports. default = (method, ...args) => {
|
|
4
4
|
if (typeof method !== "function") {
|
|
5
5
|
throw new Error("useRequest: method must be a function")
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
const [loading, setLoading] =
|
|
9
|
-
const [result, setResult] =
|
|
10
|
-
const [error, setError] =
|
|
8
|
+
const [loading, setLoading] = _react2.default.useState(true)
|
|
9
|
+
const [result, setResult] = _react2.default.useState(null)
|
|
10
|
+
const [error, setError] = _react2.default.useState(null)
|
|
11
11
|
|
|
12
12
|
const makeRequest = (...newArgs) => {
|
|
13
13
|
method(...newArgs)
|
|
@@ -21,7 +21,7 @@ export default (method, ...args) => {
|
|
|
21
21
|
})
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
_react2.default.useEffect(() => {
|
|
25
25
|
makeRequest(...args)
|
|
26
26
|
}, [])
|
|
27
27
|
|
package/{src → dist}/index.js
RENAMED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _events = require('@foxify/events'); var _events2 = _interopRequireDefault(_events);
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);
|
|
4
|
+
var _socketioclient = require('socket.io-client');
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
var _remotes = require('./remotes'); var _remotes2 = _interopRequireDefault(_remotes);
|
|
7
7
|
|
|
8
|
-
import request from "./handlers/request"
|
|
9
|
-
import Storage from "./helpers/withStorage"
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
var _withStorage = require('./helpers/withStorage'); var _withStorage2 = _interopRequireDefault(_withStorage);
|
|
10
|
+
|
|
11
|
+
var _session = require('./models/session'); var _session2 = _interopRequireDefault(_session);
|
|
12
|
+
var _models = require('./models');
|
|
13
13
|
|
|
14
14
|
globalThis.isServerMode = typeof window === "undefined" && typeof global !== "undefined"
|
|
15
15
|
|
|
@@ -24,7 +24,7 @@ if (globalThis.isServerMode) {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
function createClient({
|
|
28
28
|
wsEvents = Object(),
|
|
29
29
|
useWs = false,
|
|
30
30
|
accessKey = null,
|
|
@@ -33,32 +33,32 @@ export default function createClient({
|
|
|
33
33
|
const sharedState = globalThis.__comty_shared_state = {
|
|
34
34
|
onExpiredExceptionEvent: false,
|
|
35
35
|
excludedExpiredExceptionURL: ["/session/regenerate"],
|
|
36
|
-
eventBus: new
|
|
37
|
-
mainOrigin:
|
|
36
|
+
eventBus: new (0, _events2.default)(),
|
|
37
|
+
mainOrigin: _remotes2.default.default.origin,
|
|
38
38
|
instances: Object(),
|
|
39
39
|
wsInstances: Object(),
|
|
40
40
|
rest: null,
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
if (globalThis.isServerMode) {
|
|
44
|
-
sharedState.rest = createHandlers()
|
|
44
|
+
sharedState.rest = _models.createHandlers.call(void 0, )
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
if (privateKey && accessKey && globalThis.isServerMode) {
|
|
48
|
-
|
|
48
|
+
_withStorage2.default.engine.set("token", `${accessKey}:${privateKey}`)
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
// create instances for every remote
|
|
52
|
-
for (const [key, remote] of Object.entries(
|
|
53
|
-
sharedState.instances[key] =
|
|
52
|
+
for (const [key, remote] of Object.entries(_remotes2.default)) {
|
|
53
|
+
sharedState.instances[key] = _axios2.default.create({
|
|
54
54
|
baseURL: remote.origin,
|
|
55
55
|
})
|
|
56
56
|
|
|
57
57
|
if (useWs && remote.hasWebsocket) {
|
|
58
|
-
sharedState.wsInstances[key] = io(remote.wsOrigin
|
|
58
|
+
sharedState.wsInstances[key] = _socketioclient.io.call(void 0, _nullishCoalesce(remote.wsOrigin, () => ( remote.origin)), {
|
|
59
59
|
transports: ["websocket"],
|
|
60
60
|
autoConnect: true,
|
|
61
|
-
...remote.wsParams
|
|
61
|
+
..._nullishCoalesce(remote.wsParams, () => ( {})),
|
|
62
62
|
})
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -70,10 +70,10 @@ export default function createClient({
|
|
|
70
70
|
ws.on("connect", () => {
|
|
71
71
|
console.log(`[WS-API][${key}] Connected`)
|
|
72
72
|
|
|
73
|
-
if (
|
|
73
|
+
if (_remotes2.default[key].needsAuth) {
|
|
74
74
|
// try to auth
|
|
75
75
|
ws.emit("authenticate", {
|
|
76
|
-
token:
|
|
76
|
+
token: _session2.default.token,
|
|
77
77
|
})
|
|
78
78
|
}
|
|
79
79
|
})
|
|
@@ -100,4 +100,4 @@ export default function createClient({
|
|
|
100
100
|
})
|
|
101
101
|
|
|
102
102
|
return sharedState
|
|
103
|
-
}
|
|
103
|
+
} exports.default = createClient;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../../handlers/request'); var _request2 = _interopRequireDefault(_request);
|
|
2
|
+
var _session = require('../session'); var _session2 = _interopRequireDefault(_session);
|
|
3
|
+
|
|
4
|
+
class AuthModel {
|
|
5
|
+
static __initStatic() {this.login = async (payload) => {
|
|
6
|
+
const response = await _request2.default.call(void 0, {
|
|
7
|
+
method: "post",
|
|
8
|
+
url: "/auth/login",
|
|
9
|
+
data: {
|
|
10
|
+
username: payload.username, //window.btoa(payload.username),
|
|
11
|
+
password: payload.password, //window.btoa(payload.password),
|
|
12
|
+
},
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
_session2.default.token = response.data.token
|
|
16
|
+
|
|
17
|
+
__comty_shared_state.eventBus.emit("auth:login_success")
|
|
18
|
+
|
|
19
|
+
return response.data
|
|
20
|
+
}}
|
|
21
|
+
|
|
22
|
+
static __initStatic2() {this.logout = async () => {
|
|
23
|
+
await _session2.default.destroyCurrentSession()
|
|
24
|
+
|
|
25
|
+
_session2.default.removeToken()
|
|
26
|
+
|
|
27
|
+
__comty_shared_state.eventBus.emit("auth:logout_success")
|
|
28
|
+
}}
|
|
29
|
+
|
|
30
|
+
static __initStatic3() {this.register = async (payload) => {
|
|
31
|
+
const { username, password, email } = payload
|
|
32
|
+
|
|
33
|
+
const response = await _request2.default.call(void 0, {
|
|
34
|
+
method: "post",
|
|
35
|
+
url: "/auth/register",
|
|
36
|
+
data: {
|
|
37
|
+
username,
|
|
38
|
+
password,
|
|
39
|
+
email,
|
|
40
|
+
}
|
|
41
|
+
}).catch((error) => {
|
|
42
|
+
console.error(error)
|
|
43
|
+
|
|
44
|
+
return false
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
if (!response) {
|
|
48
|
+
throw new Error("Unable to register user")
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return response
|
|
52
|
+
}}
|
|
53
|
+
} AuthModel.__initStatic(); AuthModel.__initStatic2(); AuthModel.__initStatic3(); exports.default = AuthModel;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _request = require('../../handlers/request'); var _request2 = _interopRequireDefault(_request);
|
|
2
|
+
var _withSettings = require('../../helpers/withSettings'); var _withSettings2 = _interopRequireDefault(_withSettings);
|
|
3
|
+
|
|
4
|
+
class FeedModel {
|
|
5
|
+
static __initStatic() {this.getMusicFeed = async ({ trim, limit } = {}) => {
|
|
6
|
+
const { data } = await _request2.default.call(void 0, {
|
|
7
|
+
method: "GET",
|
|
8
|
+
url: `/feed/music`,
|
|
9
|
+
params: {
|
|
10
|
+
trim: _nullishCoalesce(trim, () => ( 0)),
|
|
11
|
+
limit: _nullishCoalesce(limit, () => ( _withSettings2.default.get("feed_max_fetch"))),
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
return data
|
|
16
|
+
}}
|
|
17
|
+
|
|
18
|
+
static __initStatic2() {this.getGlobalMusicFeed = async ({ trim, limit } = {}) => {
|
|
19
|
+
const { data } = await _request2.default.call(void 0, {
|
|
20
|
+
method: "GET",
|
|
21
|
+
url: `/feed/music/global`,
|
|
22
|
+
params: {
|
|
23
|
+
trim: _nullishCoalesce(trim, () => ( 0)),
|
|
24
|
+
limit: _nullishCoalesce(limit, () => ( _withSettings2.default.get("feed_max_fetch"))),
|
|
25
|
+
}
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
return data
|
|
29
|
+
}}
|
|
30
|
+
|
|
31
|
+
static __initStatic3() {this.getTimelineFeed = async ({ trim, limit } = {}) => {
|
|
32
|
+
const { data } = await _request2.default.call(void 0, {
|
|
33
|
+
method: "GET",
|
|
34
|
+
url: `/feed/timeline`,
|
|
35
|
+
params: {
|
|
36
|
+
trim: _nullishCoalesce(trim, () => ( 0)),
|
|
37
|
+
limit: _nullishCoalesce(limit, () => ( _withSettings2.default.get("feed_max_fetch"))),
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
return data
|
|
42
|
+
}}
|
|
43
|
+
|
|
44
|
+
static __initStatic4() {this.getPostsFeed = async ({ trim, limit } = {}) => {
|
|
45
|
+
const { data } = await _request2.default.call(void 0, {
|
|
46
|
+
method: "GET",
|
|
47
|
+
url: `/feed/posts`,
|
|
48
|
+
params: {
|
|
49
|
+
trim: _nullishCoalesce(trim, () => ( 0)),
|
|
50
|
+
limit: _nullishCoalesce(limit, () => ( _withSettings2.default.get("feed_max_fetch"))),
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
return data
|
|
55
|
+
}}
|
|
56
|
+
|
|
57
|
+
static __initStatic5() {this.getPlaylistsFeed = async ({ trim, limit } = {}) => {
|
|
58
|
+
const { data } = await _request2.default.call(void 0, {
|
|
59
|
+
method: "GET",
|
|
60
|
+
url: `/feed/playlists`,
|
|
61
|
+
params: {
|
|
62
|
+
trim: _nullishCoalesce(trim, () => ( 0)),
|
|
63
|
+
limit: _nullishCoalesce(limit, () => ( _withSettings2.default.get("feed_max_fetch"))),
|
|
64
|
+
}
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
return data
|
|
68
|
+
}}
|
|
69
|
+
|
|
70
|
+
static __initStatic6() {this.search = async (keywords, params = {}) => {
|
|
71
|
+
const { data } = await _request2.default.call(void 0, {
|
|
72
|
+
method: "GET",
|
|
73
|
+
url: `/search`,
|
|
74
|
+
params: {
|
|
75
|
+
keywords: keywords,
|
|
76
|
+
params: params
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
return data
|
|
81
|
+
}}
|
|
82
|
+
} FeedModel.__initStatic(); FeedModel.__initStatic2(); FeedModel.__initStatic3(); FeedModel.__initStatic4(); FeedModel.__initStatic5(); FeedModel.__initStatic6(); exports.default = FeedModel;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _models = require('../../models');
|
|
2
|
+
var _request = require('../../handlers/request'); var _request2 = _interopRequireDefault(_request);
|
|
3
|
+
|
|
4
|
+
class FollowsModel {
|
|
5
|
+
static __initStatic() {this.imFollowing = async (user_id) => {
|
|
6
|
+
if (!user_id) {
|
|
7
|
+
throw new Error("user_id is required")
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const response = await _request2.default.call(void 0, {
|
|
11
|
+
method: "GET",
|
|
12
|
+
url: `/follow/user/${user_id}`,
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
return response.data
|
|
16
|
+
}}
|
|
17
|
+
|
|
18
|
+
static __initStatic2() {this.getFollowers = async (user_id) => {
|
|
19
|
+
if (!user_id) {
|
|
20
|
+
// set current user_id
|
|
21
|
+
user_id = _models.SessionModel.user_id
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const response = await _request2.default.call(void 0, {
|
|
25
|
+
method: "GET",
|
|
26
|
+
url: `/follow/user/${user_id}/followers`,
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
return response.data
|
|
30
|
+
}}
|
|
31
|
+
|
|
32
|
+
static __initStatic3() {this.toogleFollow = async ({ user_id, username }) => {
|
|
33
|
+
if (!user_id && !username) {
|
|
34
|
+
throw new Error("user_id or username is required")
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const response = await _request2.default.call(void 0, {
|
|
38
|
+
method: "POST",
|
|
39
|
+
url: "/follow/user/toogle",
|
|
40
|
+
data: {
|
|
41
|
+
user_id: user_id,
|
|
42
|
+
username: username
|
|
43
|
+
},
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
return response.data
|
|
47
|
+
}}
|
|
48
|
+
} FollowsModel.__initStatic(); FollowsModel.__initStatic2(); FollowsModel.__initStatic3(); exports.default = FollowsModel;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _auth = require('./auth'); var _auth2 = _interopRequireDefault(_auth);
|
|
2
|
+
var _feed = require('./feed'); var _feed2 = _interopRequireDefault(_feed);
|
|
3
|
+
var _follows = require('./follows'); var _follows2 = _interopRequireDefault(_follows);
|
|
4
|
+
var _livestream = require('./livestream'); var _livestream2 = _interopRequireDefault(_livestream);
|
|
5
|
+
var _playlists = require('./playlists'); var _playlists2 = _interopRequireDefault(_playlists);
|
|
6
|
+
var _post = require('./post'); var _post2 = _interopRequireDefault(_post);
|
|
7
|
+
var _session = require('./session'); var _session2 = _interopRequireDefault(_session);
|
|
8
|
+
var _sync = require('./sync'); var _sync2 = _interopRequireDefault(_sync);
|
|
9
|
+
var _user = require('./user'); var _user2 = _interopRequireDefault(_user);
|
|
10
|
+
|
|
11
|
+
function getEndpointsFromModel(model) {
|
|
12
|
+
return Object.entries(model).reduce((acc, [key, value]) => {
|
|
13
|
+
acc[key] = value
|
|
14
|
+
|
|
15
|
+
return acc
|
|
16
|
+
}, {})
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function createHandlers() {
|
|
20
|
+
return {
|
|
21
|
+
auth: getEndpointsFromModel(_auth2.default),
|
|
22
|
+
feed: getEndpointsFromModel(_feed2.default),
|
|
23
|
+
follows: getEndpointsFromModel(_follows2.default),
|
|
24
|
+
livestream: getEndpointsFromModel(_livestream2.default),
|
|
25
|
+
playlists: getEndpointsFromModel(_playlists2.default),
|
|
26
|
+
post: getEndpointsFromModel(_post2.default),
|
|
27
|
+
session: getEndpointsFromModel(_session2.default),
|
|
28
|
+
sync: getEndpointsFromModel(_sync2.default),
|
|
29
|
+
user: getEndpointsFromModel(_user2.default),
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
exports.AuthModel = _auth2.default; exports.FeedModel = _feed2.default; exports.FollowsModel = _follows2.default; exports.LivestreamModel = _livestream2.default; exports.PlaylistsModel = _playlists2.default; exports.PostModel = _post2.default; exports.SessionModel = _session2.default; exports.SyncModel = _sync2.default; exports.UserModel = _user2.default; exports.createHandlers = createHandlers;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../../handlers/request'); var _request2 = _interopRequireDefault(_request);
|
|
2
|
+
|
|
3
|
+
class Livestream {
|
|
4
|
+
static __initStatic() {this.deleteProfile = async (profile_id) => {
|
|
5
|
+
const response = await _request2.default.call(void 0, {
|
|
6
|
+
method: "DELETE",
|
|
7
|
+
url: `/tv/streaming/profile`,
|
|
8
|
+
data: {
|
|
9
|
+
profile_id
|
|
10
|
+
}
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
return response.data
|
|
14
|
+
}}
|
|
15
|
+
|
|
16
|
+
static __initStatic2() {this.postProfile = async (payload) => {
|
|
17
|
+
const response = await _request2.default.call(void 0, {
|
|
18
|
+
method: "POST",
|
|
19
|
+
url: `/tv/streaming/profile`,
|
|
20
|
+
data: payload,
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
return response.data
|
|
24
|
+
}}
|
|
25
|
+
|
|
26
|
+
static __initStatic3() {this.getProfiles = async () => {
|
|
27
|
+
const response = await _request2.default.call(void 0, {
|
|
28
|
+
method: "GET",
|
|
29
|
+
url: `/tv/streaming/profiles`,
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
return response.data
|
|
33
|
+
}}
|
|
34
|
+
|
|
35
|
+
static __initStatic4() {this.regenerateStreamingKey = async (profile_id) => {
|
|
36
|
+
const response = await _request2.default.call(void 0, {
|
|
37
|
+
method: "POST",
|
|
38
|
+
url: `/tv/streaming/regenerate_key`,
|
|
39
|
+
data: {
|
|
40
|
+
profile_id
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
return response.data
|
|
45
|
+
}}
|
|
46
|
+
|
|
47
|
+
static __initStatic5() {this.getCategories = async (key) => {
|
|
48
|
+
const response = await _request2.default.call(void 0, {
|
|
49
|
+
method: "GET",
|
|
50
|
+
url: `/tv/streaming/categories`,
|
|
51
|
+
params: {
|
|
52
|
+
key,
|
|
53
|
+
}
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
return response.data
|
|
57
|
+
}}
|
|
58
|
+
|
|
59
|
+
static __initStatic6() {this.getLivestream = async (payload = {}) => {
|
|
60
|
+
if (!payload.username) {
|
|
61
|
+
throw new Error("Username is required")
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
let response = await _request2.default.call(void 0, {
|
|
65
|
+
method: "GET",
|
|
66
|
+
url: `/tv/streams`,
|
|
67
|
+
params: {
|
|
68
|
+
username: payload.username,
|
|
69
|
+
profile_id: payload.profile_id,
|
|
70
|
+
}
|
|
71
|
+
})
|
|
72
|
+
|
|
73
|
+
return response.data
|
|
74
|
+
}}
|
|
75
|
+
|
|
76
|
+
static __initStatic7() {this.getLivestreams = async () => {
|
|
77
|
+
const response = await _request2.default.call(void 0, {
|
|
78
|
+
method: "GET",
|
|
79
|
+
url: `/tv/streams`,
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
return response.data
|
|
83
|
+
}}
|
|
84
|
+
} Livestream.__initStatic(); Livestream.__initStatic2(); Livestream.__initStatic3(); Livestream.__initStatic4(); Livestream.__initStatic5(); Livestream.__initStatic6(); Livestream.__initStatic7(); exports.default = Livestream;
|