nocopyrightsounds-api
Advanced tools
Comparing version 2.0.1 to 2.1.0
import type Song from '../api/Song' | ||
export declare type events = 'save' | 'ready' | ||
export interface CacheOptions { | ||
web: boolean | ||
proxy_url: string | ||
cache_path?: string | ||
@@ -13,5 +11,3 @@ detailed_log?: boolean | ||
protected path: string | undefined | ||
protected proxy_url: string | ||
protected detailed_log: boolean | ||
protected web: boolean | ||
protected is_ready: boolean | ||
@@ -18,0 +14,0 @@ constructor(options: CacheOptions) |
@@ -147,5 +147,10 @@ 'use strict' | ||
} | ||
var __importDefault = | ||
(this && this.__importDefault) || | ||
function (mod) { | ||
return mod && mod.__esModule ? mod : { default: mod } | ||
} | ||
Object.defineProperty(exports, '__esModule', { value: true }) | ||
var fs_1 = __importDefault(require('fs')) | ||
var search_1 = require('../modules/search') | ||
var web_1 = require('../modules/web') | ||
var SongCache = /** @class */ (function () { | ||
@@ -158,7 +163,4 @@ function SongCache(options) { | ||
this.detailed_log = false | ||
this.web = false | ||
this.is_ready = false | ||
this.web = options.web | ||
this.path = options.cache_path | ||
this.proxy_url = options.proxy_url | ||
this.detailed_log = | ||
@@ -174,6 +176,2 @@ (_a = options.detailed_log) !== null && _a !== void 0 ? _a : false | ||
.then(function (status) { | ||
if (!status && _this.web) | ||
window.addEventListener('online', function () { | ||
return _this.checkForNew() | ||
}) | ||
_this.is_ready = true | ||
@@ -186,28 +184,10 @@ _this.triggerEvent('ready') | ||
return __awaiter(this, void 0, void 0, function () { | ||
var rawSongs, fs, rawSongs | ||
var rawSongs | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (this.path == undefined || this.path.trim() == '') | ||
return [2 /*return*/] | ||
if (!this.web) return [3 /*break*/, 1] | ||
rawSongs = localStorage.getItem(this.path) | ||
if (rawSongs) this.songs = JSON.parse(rawSongs) | ||
return [3 /*break*/, 3] | ||
case 1: | ||
return [ | ||
4 /*yield*/, | ||
Promise.resolve().then(function () { | ||
return require('fs') | ||
}) | ||
] | ||
case 2: | ||
fs = _a.sent() | ||
if (!fs.existsSync(this.path)) return [2 /*return*/] | ||
rawSongs = fs.readFileSync(this.path).toString() | ||
this.songs = JSON.parse(rawSongs) | ||
_a.label = 3 | ||
case 3: | ||
return [2 /*return*/] | ||
} | ||
if (this.path == undefined || this.path.trim() == '') | ||
return [2 /*return*/] | ||
if (!fs_1.default.existsSync(this.path)) return [2 /*return*/] | ||
rawSongs = fs_1.default.readFileSync(this.path).toString() | ||
this.songs = JSON.parse(rawSongs) | ||
return [2 /*return*/] | ||
}) | ||
@@ -218,26 +198,8 @@ }) | ||
return __awaiter(this, void 0, void 0, function () { | ||
var fs | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (this.path == undefined || this.path.trim() == '') | ||
return [2 /*return*/] | ||
if (!this.web) return [3 /*break*/, 1] | ||
localStorage.setItem(this.path, JSON.stringify(this.songs)) | ||
return [3 /*break*/, 3] | ||
case 1: | ||
return [ | ||
4 /*yield*/, | ||
Promise.resolve().then(function () { | ||
return require('fs') | ||
}) | ||
] | ||
case 2: | ||
fs = _a.sent() | ||
fs.writeFileSync(this.path, JSON.stringify(this.songs)) | ||
_a.label = 3 | ||
case 3: | ||
this.triggerEvent('save') | ||
return [2 /*return*/] | ||
} | ||
if (this.path == undefined || this.path.trim() == '') | ||
return [2 /*return*/] | ||
fs_1.default.writeFileSync(this.path, JSON.stringify(this.songs)) | ||
this.triggerEvent('save') | ||
return [2 /*return*/] | ||
}) | ||
@@ -290,25 +252,15 @@ }) | ||
return __awaiter(this, void 0, void 0, function () { | ||
var cp, appendCache, songs, _a, newSongs | ||
var cp, appendCache, songs, newSongs | ||
var _this = this | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (this.web && !navigator.onLine) return [2 /*return*/, false] | ||
cp = 1 | ||
appendCache = [] | ||
_b.label = 1 | ||
_a.label = 1 | ||
case 1: | ||
if (!true) return [3 /*break*/, 6] | ||
if (!this.web) return [3 /*break*/, 3] | ||
return [4 /*yield*/, web_1.default.getSongs(this.proxy_url, cp)] | ||
if (!true) return [3 /*break*/, 3] | ||
return [4 /*yield*/, (0, search_1.search)({}, cp)] | ||
case 2: | ||
_a = _b.sent() | ||
return [3 /*break*/, 5] | ||
case 3: | ||
return [4 /*yield*/, (0, search_1.search)({}, cp)] | ||
case 4: | ||
_a = _b.sent() | ||
_b.label = 5 | ||
case 5: | ||
songs = _a | ||
songs = _a.sent() | ||
newSongs = songs.filter(function (song) { | ||
@@ -334,6 +286,6 @@ return !_this.songs.find(function (s) { | ||
appendCache.push.apply(appendCache, newSongs) | ||
if (newSongs.length == 0) return [3 /*break*/, 6] | ||
if (newSongs.length == 0) return [3 /*break*/, 3] | ||
cp++ | ||
return [3 /*break*/, 1] | ||
case 6: | ||
case 3: | ||
this.addSongs.apply(this, appendCache) | ||
@@ -340,0 +292,0 @@ if (this.detailed_log) console.log('finished refreshing song list') |
export * from './modules/musiclist' | ||
export * from './modules/search' | ||
export * from './modules/artist' | ||
export { default as web } from './modules/web' | ||
export { default as Client } from './modules/Client' | ||
@@ -6,0 +5,0 @@ export type { default as Song } from './api/Song' |
@@ -7,8 +7,15 @@ 'use strict' | ||
if (k2 === undefined) k2 = k | ||
Object.defineProperty(o, k2, { | ||
enumerable: true, | ||
get: function () { | ||
return m[k] | ||
var desc = Object.getOwnPropertyDescriptor(m, k) | ||
if ( | ||
!desc || | ||
('get' in desc ? !m.__esModule : desc.writable || desc.configurable) | ||
) { | ||
desc = { | ||
enumerable: true, | ||
get: function () { | ||
return m[k] | ||
} | ||
} | ||
}) | ||
} | ||
Object.defineProperty(o, k2, desc) | ||
} | ||
@@ -26,14 +33,12 @@ : function (o, m, k, k2) { | ||
} | ||
var __importDefault = | ||
(this && this.__importDefault) || | ||
function (mod) { | ||
return mod && mod.__esModule ? mod : { default: mod } | ||
} | ||
Object.defineProperty(exports, '__esModule', { value: true }) | ||
exports.Client = exports.web = void 0 | ||
exports.Client = void 0 | ||
__exportStar(require('./modules/musiclist'), exports) | ||
__exportStar(require('./modules/search'), exports) | ||
__exportStar(require('./modules/artist'), exports) | ||
var web_1 = require('./modules/web') | ||
Object.defineProperty(exports, 'web', { | ||
enumerable: true, | ||
get: function () { | ||
return web_1.default | ||
} | ||
}) | ||
var Client_1 = require('./modules/Client') | ||
@@ -43,4 +48,4 @@ Object.defineProperty(exports, 'Client', { | ||
get: function () { | ||
return Client_1.default | ||
return __importDefault(Client_1).default | ||
} | ||
}) |
@@ -135,7 +135,12 @@ 'use strict' | ||
} | ||
var __importDefault = | ||
(this && this.__importDefault) || | ||
function (mod) { | ||
return mod && mod.__esModule ? mod : { default: mod } | ||
} | ||
Object.defineProperty(exports, '__esModule', { value: true }) | ||
exports.getArtistInfo = void 0 | ||
var jsdom_1 = require('jsdom') | ||
var axios_1 = require('axios') | ||
var parse_table_1 = require('../helpers/parse_table') | ||
var axios_1 = __importDefault(require('axios')) | ||
var parse_table_1 = __importDefault(require('../helpers/parse_table')) | ||
var getArtistInfo = function (artist_url) { | ||
@@ -142,0 +147,0 @@ return __awaiter(void 0, void 0, void 0, function () { |
@@ -5,4 +5,2 @@ import SongCache from '../helpers/SongCache' | ||
export interface NCSClientOptions { | ||
web?: boolean | ||
proxy_url?: string | ||
use_cache?: boolean | ||
@@ -13,4 +11,2 @@ cache_path?: string | ||
export default class NCSClient { | ||
private proxy_url | ||
private web | ||
private detailed_log | ||
@@ -17,0 +13,0 @@ protected cache: SongCache | undefined |
@@ -135,5 +135,9 @@ 'use strict' | ||
} | ||
var __importDefault = | ||
(this && this.__importDefault) || | ||
function (mod) { | ||
return mod && mod.__esModule ? mod : { default: mod } | ||
} | ||
Object.defineProperty(exports, '__esModule', { value: true }) | ||
var SongCache_1 = require('../helpers/SongCache') | ||
var web_1 = require('./web') | ||
var SongCache_1 = __importDefault(require('../helpers/SongCache')) | ||
var musiclist_1 = require('./musiclist') | ||
@@ -147,12 +151,7 @@ var search_1 = require('./search') | ||
} | ||
var _a, _b, _c | ||
this.web = (_a = options.web) !== null && _a !== void 0 ? _a : false | ||
this.proxy_url = | ||
(_b = options.proxy_url) !== null && _b !== void 0 ? _b : '' | ||
var _a | ||
this.detailed_log = | ||
(_c = options.detailed_log) !== null && _c !== void 0 ? _c : false | ||
(_a = options.detailed_log) !== null && _a !== void 0 ? _a : false | ||
if (options.use_cache) { | ||
this.cache = new SongCache_1.default({ | ||
web: this.web, | ||
proxy_url: this.proxy_url, | ||
cache_path: options.cache_path, | ||
@@ -185,10 +184,5 @@ detailed_log: this.detailed_log | ||
case 1: | ||
if (!this.web) return [3 /*break*/, 3] | ||
return [4 /*yield*/, web_1.default.getSongs(this.proxy_url, page)] | ||
return [4 /*yield*/, (0, musiclist_1.getMusic)(page)] | ||
case 2: | ||
return [2 /*return*/, _a.sent()] | ||
case 3: | ||
return [4 /*yield*/, (0, musiclist_1.getMusic)(page)] | ||
case 4: | ||
return [2 /*return*/, _a.sent()] | ||
} | ||
@@ -211,13 +205,5 @@ }) | ||
} | ||
if (!this.web) return [3 /*break*/, 2] | ||
return [ | ||
4 /*yield*/, | ||
web_1.default.search(this.proxy_url, filter, page) | ||
] | ||
return [4 /*yield*/, (0, search_1.search)(filter, page)] | ||
case 1: | ||
return [2 /*return*/, _a.sent()] | ||
case 2: | ||
return [4 /*yield*/, (0, search_1.search)(filter, page)] | ||
case 3: | ||
return [2 /*return*/, _a.sent()] | ||
} | ||
@@ -235,13 +221,5 @@ }) | ||
} | ||
if (!this.web) return [3 /*break*/, 2] | ||
return [ | ||
4 /*yield*/, | ||
web_1.default.getArtistInfo(this.proxy_url, artist_url) | ||
] | ||
return [4 /*yield*/, (0, artist_1.getArtistInfo)(artist_url)] | ||
case 1: | ||
return [2 /*return*/, _a.sent()] | ||
case 2: | ||
return [4 /*yield*/, (0, artist_1.getArtistInfo)(artist_url)] | ||
case 3: | ||
return [2 /*return*/, _a.sent()] | ||
} | ||
@@ -248,0 +226,0 @@ }) |
import type Song from '../api/Song' | ||
export declare const getMusic: (page?: number | undefined) => Promise<Song[]> | ||
export declare const getMusic: (page?: number) => Promise<Song[]> |
@@ -135,6 +135,11 @@ 'use strict' | ||
} | ||
var __importDefault = | ||
(this && this.__importDefault) || | ||
function (mod) { | ||
return mod && mod.__esModule ? mod : { default: mod } | ||
} | ||
Object.defineProperty(exports, '__esModule', { value: true }) | ||
exports.getMusic = void 0 | ||
var jsdom_1 = require('jsdom') | ||
var axios_1 = require('axios') | ||
var axios_1 = __importDefault(require('axios')) | ||
var getMusic = function (page) { | ||
@@ -141,0 +146,0 @@ return __awaiter(void 0, void 0, void 0, function () { |
@@ -135,7 +135,12 @@ 'use strict' | ||
} | ||
var __importDefault = | ||
(this && this.__importDefault) || | ||
function (mod) { | ||
return mod && mod.__esModule ? mod : { default: mod } | ||
} | ||
Object.defineProperty(exports, '__esModule', { value: true }) | ||
exports.search = void 0 | ||
var jsdom_1 = require('jsdom') | ||
var axios_1 = require('axios') | ||
var parse_table_1 = require('../helpers/parse_table') | ||
var axios_1 = __importDefault(require('axios')) | ||
var parse_table_1 = __importDefault(require('../helpers/parse_table')) | ||
var search = function (filter, page) { | ||
@@ -142,0 +147,0 @@ if (page === void 0) { |
import type Song from '../api/Song' | ||
export declare type events = 'save' | 'ready' | ||
export interface CacheOptions { | ||
web: boolean | ||
proxy_url: string | ||
cache_path?: string | ||
@@ -13,5 +11,3 @@ detailed_log?: boolean | ||
protected path: string | undefined | ||
protected proxy_url: string | ||
protected detailed_log: boolean | ||
protected web: boolean | ||
protected is_ready: boolean | ||
@@ -18,0 +14,0 @@ constructor(options: CacheOptions) |
@@ -146,4 +146,4 @@ var __awaiter = | ||
} | ||
import fs from 'fs' | ||
import { search } from '../modules/search' | ||
import web from '../modules/web' | ||
var SongCache = /** @class */ (function () { | ||
@@ -156,7 +156,4 @@ function SongCache(options) { | ||
this.detailed_log = false | ||
this.web = false | ||
this.is_ready = false | ||
this.web = options.web | ||
this.path = options.cache_path | ||
this.proxy_url = options.proxy_url | ||
this.detailed_log = | ||
@@ -172,6 +169,2 @@ (_a = options.detailed_log) !== null && _a !== void 0 ? _a : false | ||
.then(function (status) { | ||
if (!status && _this.web) | ||
window.addEventListener('online', function () { | ||
return _this.checkForNew() | ||
}) | ||
_this.is_ready = true | ||
@@ -184,23 +177,10 @@ _this.triggerEvent('ready') | ||
return __awaiter(this, void 0, void 0, function () { | ||
var rawSongs, fs, rawSongs | ||
var rawSongs | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (this.path == undefined || this.path.trim() == '') | ||
return [2 /*return*/] | ||
if (!this.web) return [3 /*break*/, 1] | ||
rawSongs = localStorage.getItem(this.path) | ||
if (rawSongs) this.songs = JSON.parse(rawSongs) | ||
return [3 /*break*/, 3] | ||
case 1: | ||
return [4 /*yield*/, import('fs')] | ||
case 2: | ||
fs = _a.sent() | ||
if (!fs.existsSync(this.path)) return [2 /*return*/] | ||
rawSongs = fs.readFileSync(this.path).toString() | ||
this.songs = JSON.parse(rawSongs) | ||
_a.label = 3 | ||
case 3: | ||
return [2 /*return*/] | ||
} | ||
if (this.path == undefined || this.path.trim() == '') | ||
return [2 /*return*/] | ||
if (!fs.existsSync(this.path)) return [2 /*return*/] | ||
rawSongs = fs.readFileSync(this.path).toString() | ||
this.songs = JSON.parse(rawSongs) | ||
return [2 /*return*/] | ||
}) | ||
@@ -211,21 +191,8 @@ }) | ||
return __awaiter(this, void 0, void 0, function () { | ||
var fs | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (this.path == undefined || this.path.trim() == '') | ||
return [2 /*return*/] | ||
if (!this.web) return [3 /*break*/, 1] | ||
localStorage.setItem(this.path, JSON.stringify(this.songs)) | ||
return [3 /*break*/, 3] | ||
case 1: | ||
return [4 /*yield*/, import('fs')] | ||
case 2: | ||
fs = _a.sent() | ||
fs.writeFileSync(this.path, JSON.stringify(this.songs)) | ||
_a.label = 3 | ||
case 3: | ||
this.triggerEvent('save') | ||
return [2 /*return*/] | ||
} | ||
if (this.path == undefined || this.path.trim() == '') | ||
return [2 /*return*/] | ||
fs.writeFileSync(this.path, JSON.stringify(this.songs)) | ||
this.triggerEvent('save') | ||
return [2 /*return*/] | ||
}) | ||
@@ -278,25 +245,15 @@ }) | ||
return __awaiter(this, void 0, void 0, function () { | ||
var cp, appendCache, songs, _a, newSongs | ||
var cp, appendCache, songs, newSongs | ||
var _this = this | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (this.web && !navigator.onLine) return [2 /*return*/, false] | ||
cp = 1 | ||
appendCache = [] | ||
_b.label = 1 | ||
_a.label = 1 | ||
case 1: | ||
if (!true) return [3 /*break*/, 6] | ||
if (!this.web) return [3 /*break*/, 3] | ||
return [4 /*yield*/, web.getSongs(this.proxy_url, cp)] | ||
if (!true) return [3 /*break*/, 3] | ||
return [4 /*yield*/, search({}, cp)] | ||
case 2: | ||
_a = _b.sent() | ||
return [3 /*break*/, 5] | ||
case 3: | ||
return [4 /*yield*/, search({}, cp)] | ||
case 4: | ||
_a = _b.sent() | ||
_b.label = 5 | ||
case 5: | ||
songs = _a | ||
songs = _a.sent() | ||
newSongs = songs.filter(function (song) { | ||
@@ -322,6 +279,6 @@ return !_this.songs.find(function (s) { | ||
appendCache.push.apply(appendCache, newSongs) | ||
if (newSongs.length == 0) return [3 /*break*/, 6] | ||
if (newSongs.length == 0) return [3 /*break*/, 3] | ||
cp++ | ||
return [3 /*break*/, 1] | ||
case 6: | ||
case 3: | ||
this.addSongs.apply(this, appendCache) | ||
@@ -328,0 +285,0 @@ if (this.detailed_log) console.log('finished refreshing song list') |
export * from './modules/musiclist' | ||
export * from './modules/search' | ||
export * from './modules/artist' | ||
export { default as web } from './modules/web' | ||
export { default as Client } from './modules/Client' | ||
@@ -6,0 +5,0 @@ export type { default as Song } from './api/Song' |
export * from './modules/musiclist' | ||
export * from './modules/search' | ||
export * from './modules/artist' | ||
export { default as web } from './modules/web' | ||
export { default as Client } from './modules/Client' |
@@ -5,4 +5,2 @@ import SongCache from '../helpers/SongCache' | ||
export interface NCSClientOptions { | ||
web?: boolean | ||
proxy_url?: string | ||
use_cache?: boolean | ||
@@ -13,4 +11,2 @@ cache_path?: string | ||
export default class NCSClient { | ||
private proxy_url | ||
private web | ||
private detailed_log | ||
@@ -17,0 +13,0 @@ protected cache: SongCache | undefined |
@@ -135,3 +135,2 @@ var __awaiter = | ||
import SongCache from '../helpers/SongCache' | ||
import web from './web' | ||
import { getMusic } from './musiclist' | ||
@@ -145,12 +144,7 @@ import { search } from './search' | ||
} | ||
var _a, _b, _c | ||
this.web = (_a = options.web) !== null && _a !== void 0 ? _a : false | ||
this.proxy_url = | ||
(_b = options.proxy_url) !== null && _b !== void 0 ? _b : '' | ||
var _a | ||
this.detailed_log = | ||
(_c = options.detailed_log) !== null && _c !== void 0 ? _c : false | ||
(_a = options.detailed_log) !== null && _a !== void 0 ? _a : false | ||
if (options.use_cache) { | ||
this.cache = new SongCache({ | ||
web: this.web, | ||
proxy_url: this.proxy_url, | ||
cache_path: options.cache_path, | ||
@@ -183,10 +177,5 @@ detailed_log: this.detailed_log | ||
case 1: | ||
if (!this.web) return [3 /*break*/, 3] | ||
return [4 /*yield*/, web.getSongs(this.proxy_url, page)] | ||
return [4 /*yield*/, getMusic(page)] | ||
case 2: | ||
return [2 /*return*/, _a.sent()] | ||
case 3: | ||
return [4 /*yield*/, getMusic(page)] | ||
case 4: | ||
return [2 /*return*/, _a.sent()] | ||
} | ||
@@ -209,10 +198,5 @@ }) | ||
} | ||
if (!this.web) return [3 /*break*/, 2] | ||
return [4 /*yield*/, web.search(this.proxy_url, filter, page)] | ||
return [4 /*yield*/, search(filter, page)] | ||
case 1: | ||
return [2 /*return*/, _a.sent()] | ||
case 2: | ||
return [4 /*yield*/, search(filter, page)] | ||
case 3: | ||
return [2 /*return*/, _a.sent()] | ||
} | ||
@@ -230,10 +214,5 @@ }) | ||
} | ||
if (!this.web) return [3 /*break*/, 2] | ||
return [4 /*yield*/, web.getArtistInfo(this.proxy_url, artist_url)] | ||
return [4 /*yield*/, getArtistInfo(artist_url)] | ||
case 1: | ||
return [2 /*return*/, _a.sent()] | ||
case 2: | ||
return [4 /*yield*/, getArtistInfo(artist_url)] | ||
case 3: | ||
return [2 /*return*/, _a.sent()] | ||
} | ||
@@ -240,0 +219,0 @@ }) |
import type Song from '../api/Song' | ||
export declare const getMusic: (page?: number | undefined) => Promise<Song[]> | ||
export declare const getMusic: (page?: number) => Promise<Song[]> |
{ | ||
"name": "nocopyrightsounds-api", | ||
"version": "2.0.1", | ||
"version": "2.1.0", | ||
"description": "A webscraper for the NoCopyrightSounds website to provide an API", | ||
@@ -25,2 +25,3 @@ "main": "dist/cjs/main.js", | ||
"@types/jsdom": "^16.2.14", | ||
"@types/node": "^17.0.40", | ||
"concurrently": "^6.2.0", | ||
@@ -31,5 +32,5 @@ "prettier": "^2.3.2", | ||
"dependencies": { | ||
"axios": "^0.26.1", | ||
"axios": "^0.27.2", | ||
"jsdom": "^19.0.0" | ||
} | ||
} |
@@ -106,23 +106,4 @@ # NoCopyrightSounds API | ||
### in the browser | ||
```js | ||
import * as ncs from 'nocopyrightsounds-api' | ||
ncs.web // add ".web" before the function | ||
.getMusic(/*page here*/) | ||
.then(songs => { | ||
//use the songs here | ||
console.log(songs) | ||
}) | ||
.catch(err => { | ||
//error handeling here | ||
console.error(err) | ||
}) | ||
``` | ||
## using the client class | ||
### in nodejs | ||
```js | ||
@@ -145,13 +126,2 @@ import * as ncs from 'nocopyrightsounds-api' | ||
### in the browser | ||
```js | ||
import * as ncs from 'nocopyrightsounds-api' | ||
const client = new ncs.Client({ | ||
web: true, | ||
proxy_url: /*add your proxy url here (use the NoCopyrightSounds-API-server found on npm)*/ | ||
}) | ||
``` | ||
### with caching | ||
@@ -158,0 +128,0 @@ |
@@ -0,3 +1,3 @@ | ||
import fs from 'fs' | ||
import { search } from '../modules/search' | ||
import web from '../modules/web' | ||
@@ -10,4 +10,2 @@ import type Song from '../api/Song' | ||
export interface CacheOptions { | ||
web: boolean | ||
proxy_url: string | ||
cache_path?: string | ||
@@ -21,11 +19,7 @@ detailed_log?: boolean | ||
protected path: string | undefined | ||
protected proxy_url: string | ||
protected detailed_log = false | ||
protected web = false | ||
protected is_ready = false | ||
public constructor(options: CacheOptions) { | ||
this.web = options.web | ||
this.path = options.cache_path | ||
this.proxy_url = options.proxy_url | ||
this.detailed_log = options.detailed_log ?? false | ||
@@ -37,4 +31,2 @@ | ||
.then(status => { | ||
if (!status && this.web) | ||
window.addEventListener('online', () => this.checkForNew()) | ||
this.is_ready = true | ||
@@ -48,11 +40,5 @@ this.triggerEvent('ready') | ||
if (this.path == undefined || this.path.trim() == '') return | ||
if (this.web) { | ||
const rawSongs = localStorage.getItem(this.path) | ||
if (rawSongs) this.songs = JSON.parse(rawSongs) | ||
} else { | ||
const fs = await import('fs') | ||
if (!fs.existsSync(this.path)) return | ||
const rawSongs = fs.readFileSync(this.path).toString() | ||
this.songs = JSON.parse(rawSongs) | ||
} | ||
if (!fs.existsSync(this.path)) return | ||
const rawSongs = fs.readFileSync(this.path).toString() | ||
this.songs = JSON.parse(rawSongs) | ||
} | ||
@@ -62,8 +48,3 @@ | ||
if (this.path == undefined || this.path.trim() == '') return | ||
if (this.web) { | ||
localStorage.setItem(this.path, JSON.stringify(this.songs)) | ||
} else { | ||
const fs = await import('fs') | ||
fs.writeFileSync(this.path, JSON.stringify(this.songs)) | ||
} | ||
fs.writeFileSync(this.path, JSON.stringify(this.songs)) | ||
this.triggerEvent('save') | ||
@@ -109,9 +90,6 @@ } | ||
public async checkForNew() { | ||
if (this.web && !navigator.onLine) return false | ||
var cp = 1 | ||
const appendCache: Song[] = [] | ||
while (true) { | ||
const songs = this.web | ||
? await web.getSongs(this.proxy_url, cp) | ||
: await search({}, cp) | ||
const songs = await search({}, cp) | ||
const newSongs = songs.filter( | ||
@@ -118,0 +96,0 @@ song => !this.songs.find(s => s.songUrl == song.songUrl) |
export * from './modules/musiclist' | ||
export * from './modules/search' | ||
export * from './modules/artist' | ||
export { default as web } from './modules/web' | ||
export { default as Client } from './modules/Client' | ||
@@ -6,0 +5,0 @@ |
import SongCache from '../helpers/SongCache' | ||
import web from './web' | ||
import { getMusic } from './musiclist' | ||
@@ -11,4 +10,2 @@ import { search } from './search' | ||
export interface NCSClientOptions { | ||
web?: boolean | ||
proxy_url?: string | ||
use_cache?: boolean | ||
@@ -20,4 +17,2 @@ cache_path?: string | ||
export default class NCSClient { | ||
private proxy_url: string | ||
private web: boolean | ||
private detailed_log: boolean | ||
@@ -27,4 +22,2 @@ protected cache: SongCache | undefined | ||
public constructor(options: NCSClientOptions = {}) { | ||
this.web = options.web ?? false | ||
this.proxy_url = options.proxy_url ?? '' | ||
this.detailed_log = options.detailed_log ?? false | ||
@@ -34,4 +27,2 @@ | ||
this.cache = new SongCache({ | ||
web: this.web, | ||
proxy_url: this.proxy_url, | ||
cache_path: options.cache_path, | ||
@@ -55,7 +46,3 @@ detailed_log: this.detailed_log | ||
} else { | ||
if (this.web) { | ||
return await web.getSongs(this.proxy_url, page) | ||
} else { | ||
return await getMusic(page) | ||
} | ||
return await getMusic(page) | ||
} | ||
@@ -70,7 +57,3 @@ } | ||
} | ||
if (this.web) { | ||
return await web.search(this.proxy_url, filter, page) | ||
} else { | ||
return await search(filter, page) | ||
} | ||
return await search(filter, page) | ||
} | ||
@@ -82,8 +65,4 @@ | ||
} | ||
if (this.web) { | ||
return await web.getArtistInfo(this.proxy_url, artist_url) | ||
} else { | ||
return await getArtistInfo(artist_url) | ||
} | ||
return await getArtistInfo(artist_url) | ||
} | ||
} |
@@ -6,2 +6,3 @@ { | ||
"declaration": true, | ||
"esModuleInterop": true, | ||
"moduleResolution": "Node" | ||
@@ -8,0 +9,0 @@ }, |
139801
5
63
3561
151
+ Addedaxios@0.27.2(transitive)
- Removedaxios@0.26.1(transitive)
Updatedaxios@^0.27.2