nocopyrightsounds-api
Advanced tools
Comparing version 1.1.11 to 1.2.0
export * from './modules/musiclist' | ||
export * from './modules/search' | ||
export * from './modules/artist' |
@@ -28,1 +28,2 @@ 'use strict' | ||
__exportStar(require('./modules/search'), exports) | ||
__exportStar(require('./modules/artist'), exports) |
@@ -1,2 +0,2 @@ | ||
import Song from '../classes/song' | ||
import type Song from '../classes/song' | ||
export declare const getMusic: (page?: number | undefined) => Promise<Song[]> |
@@ -139,4 +139,2 @@ 'use strict' | ||
var axios_1 = require('axios') | ||
var artist_1 = require('../classes/artist') | ||
var song_1 = require('../classes/song') | ||
var getMusic = function (page) { | ||
@@ -201,13 +199,13 @@ return __awaiter(void 0, void 0, void 0, function () { | ||
var name = art_el.innerHTML | ||
return new artist_1.default(name, url) | ||
return { name: name, url: url } | ||
}) | ||
return new song_1.default( | ||
name, | ||
date, | ||
genre, | ||
artists, | ||
url, | ||
cover, | ||
song_url | ||
) | ||
return { | ||
name: name, | ||
url: url, | ||
date: date, | ||
genre: genre, | ||
artists: artists, | ||
imageUrl: cover, | ||
songUrl: song_url | ||
} | ||
}) | ||
@@ -214,0 +212,0 @@ return [2 /*return*/, songs] |
@@ -1,2 +0,2 @@ | ||
import Song from '../classes/song' | ||
import type Song from '../classes/song' | ||
export interface Filter { | ||
@@ -3,0 +3,0 @@ genre?: number |
@@ -139,4 +139,3 @@ 'use strict' | ||
var axios_1 = require('axios') | ||
var artist_1 = require('../classes/artist') | ||
var song_1 = require('../classes/song') | ||
var parse_table_1 = require('../helpers/parse_table') | ||
var search = function (filter, page) { | ||
@@ -147,3 +146,3 @@ if (page === void 0) { | ||
return __awaiter(void 0, void 0, void 0, function () { | ||
var html, dom, document, table, song_els, songs | ||
var html, dom, document, table, songs | ||
return __generator(this, function (_a) { | ||
@@ -170,47 +169,3 @@ switch (_a.label) { | ||
table = document.querySelector('.tablesorter tbody') | ||
song_els = table.querySelectorAll('tr') | ||
songs = Array.from(song_els).map(function (el) { | ||
var _a = Array.from(el.querySelectorAll('td')), | ||
player_col = _a[0], | ||
genre_col = _a[1], | ||
img_col = _a[2], | ||
main_col = _a[3], | ||
tags_col = _a[4], | ||
date_col = _a[5], | ||
tracks_col = _a[6], | ||
_ = _a[7] | ||
var url = main_col.querySelector('a').href | ||
var date_obj = new Date( | ||
el.querySelectorAll('td[style="width:15%;"]')[1].innerHTML | ||
) | ||
var date = '' | ||
.concat(date_obj.getFullYear(), '-') | ||
.concat(date_obj.getMonth(), '-') | ||
.concat(date_obj.getDate()) | ||
var genre = genre_col.querySelector('.genre').getAttribute('title') | ||
var player = player_col.querySelector('.player-play') | ||
var cover = player | ||
.getAttribute('data-cover') | ||
.replace(/100x100/g, '325x325') | ||
var name = player.getAttribute('data-track') | ||
var song_url = player.getAttribute('data-url') | ||
var artists_el = player.getAttribute('data-artist') | ||
var artists = artists_el.split(', ').map(function (art) { | ||
var art_el = new jsdom_1.JSDOM(art).window.document.querySelector( | ||
'a' | ||
) | ||
var url = art_el.getAttribute('href') | ||
var name = art_el.innerHTML | ||
return new artist_1.default(name, url) | ||
}) | ||
return new song_1.default( | ||
name, | ||
date, | ||
genre, | ||
artists, | ||
url, | ||
cover, | ||
song_url | ||
) | ||
}) | ||
songs = (0, parse_table_1.default)(table) | ||
return [2 /*return*/, songs] | ||
@@ -217,0 +172,0 @@ } |
export * from './modules/musiclist' | ||
export * from './modules/search' | ||
export * from './modules/artist' |
export * from './modules/musiclist' | ||
export * from './modules/search' | ||
export * from './modules/artist' |
@@ -1,2 +0,2 @@ | ||
import Song from '../classes/song' | ||
import type Song from '../classes/song' | ||
export declare const getMusic: (page?: number | undefined) => Promise<Song[]> |
@@ -136,4 +136,2 @@ var __awaiter = | ||
import axios from 'axios' | ||
import Artist from '../classes/artist' | ||
import Song from '../classes/song' | ||
export var getMusic = function (page) { | ||
@@ -193,5 +191,13 @@ return __awaiter(void 0, void 0, void 0, function () { | ||
var name = art_el.innerHTML | ||
return new Artist(name, url) | ||
return { name: name, url: url } | ||
}) | ||
return new Song(name, date, genre, artists, url, cover, song_url) | ||
return { | ||
name: name, | ||
url: url, | ||
date: date, | ||
genre: genre, | ||
artists: artists, | ||
imageUrl: cover, | ||
songUrl: song_url | ||
} | ||
}) | ||
@@ -198,0 +204,0 @@ return [2 /*return*/, songs] |
@@ -1,2 +0,2 @@ | ||
import Song from '../classes/song' | ||
import type Song from '../classes/song' | ||
export interface Filter { | ||
@@ -3,0 +3,0 @@ genre?: number |
@@ -136,4 +136,3 @@ var __awaiter = | ||
import axios from 'axios' | ||
import Artist from '../classes/artist' | ||
import Song from '../classes/song' | ||
import parse_table from '../helpers/parse_table' | ||
export var search = function (filter, page) { | ||
@@ -144,3 +143,3 @@ if (page === void 0) { | ||
return __awaiter(void 0, void 0, void 0, function () { | ||
var html, dom, document, table, song_els, songs | ||
var html, dom, document, table, songs | ||
return __generator(this, function (_a) { | ||
@@ -167,37 +166,3 @@ switch (_a.label) { | ||
table = document.querySelector('.tablesorter tbody') | ||
song_els = table.querySelectorAll('tr') | ||
songs = Array.from(song_els).map(function (el) { | ||
var _a = Array.from(el.querySelectorAll('td')), | ||
player_col = _a[0], | ||
genre_col = _a[1], | ||
img_col = _a[2], | ||
main_col = _a[3], | ||
tags_col = _a[4], | ||
date_col = _a[5], | ||
tracks_col = _a[6], | ||
_ = _a[7] | ||
var url = main_col.querySelector('a').href | ||
var date_obj = new Date( | ||
el.querySelectorAll('td[style="width:15%;"]')[1].innerHTML | ||
) | ||
var date = '' | ||
.concat(date_obj.getFullYear(), '-') | ||
.concat(date_obj.getMonth(), '-') | ||
.concat(date_obj.getDate()) | ||
var genre = genre_col.querySelector('.genre').getAttribute('title') | ||
var player = player_col.querySelector('.player-play') | ||
var cover = player | ||
.getAttribute('data-cover') | ||
.replace(/100x100/g, '325x325') | ||
var name = player.getAttribute('data-track') | ||
var song_url = player.getAttribute('data-url') | ||
var artists_el = player.getAttribute('data-artist') | ||
var artists = artists_el.split(', ').map(function (art) { | ||
var art_el = new JSDOM(art).window.document.querySelector('a') | ||
var url = art_el.getAttribute('href') | ||
var name = art_el.innerHTML | ||
return new Artist(name, url) | ||
}) | ||
return new Song(name, date, genre, artists, url, cover, song_url) | ||
}) | ||
songs = parse_table(table) | ||
return [2 /*return*/, songs] | ||
@@ -204,0 +169,0 @@ } |
{ | ||
"name": "nocopyrightsounds-api", | ||
"version": "1.1.11", | ||
"version": "1.2.0", | ||
"description": "A webscraper for the NoCopyrightSounds website to provide an API", | ||
@@ -15,3 +15,3 @@ "main": "dist/cjs/main.js", | ||
"dev": "concurrently \"npm run buildWatch\" \"npm run devStart\"", | ||
"prepublishOnly": "npm run build && npm run prettier && npm version patch", | ||
"prepublishOnly": "npm run build && npm run prettier", | ||
"prettier": "prettier --write .", | ||
@@ -18,0 +18,0 @@ "test": "tsc -p tests/tsconfig.test.json && node tests/dist/tests/main.test.js" |
export * from './modules/musiclist' | ||
export * from './modules/search' | ||
export * from './modules/artist' |
import { JSDOM } from 'jsdom' | ||
import axios from 'axios' | ||
import Artist from '../classes/artist' | ||
import Song from '../classes/song' | ||
import type Artist from '../classes/artist' | ||
import type Song from '../classes/song' | ||
@@ -19,3 +19,3 @@ export const getMusic = async (page?: number): Promise<Song[]> => { | ||
const song_els = document.querySelectorAll('div.col-lg-2.item') | ||
const songs = Array.from(song_els).map(song_el => { | ||
const songs = Array.from(song_els).map<Song>(song_el => { | ||
const img_link_el = song_el.querySelector<HTMLAnchorElement>('a[href]')! | ||
@@ -47,8 +47,16 @@ const url = img_link_el.href | ||
const name = art_el.innerHTML | ||
return new Artist(name, url) | ||
return { name, url } | ||
}) | ||
return new Song(name, date, genre, artists, url, cover, song_url) | ||
return { | ||
name, | ||
url, | ||
date, | ||
genre, | ||
artists, | ||
imageUrl: cover, | ||
songUrl: song_url | ||
} | ||
}) | ||
return songs | ||
} |
import { JSDOM } from 'jsdom' | ||
import axios from 'axios' | ||
import parse_table from '../helpers/parse_table' | ||
import Artist from '../classes/artist' | ||
import Song from '../classes/song' | ||
import type Song from '../classes/song' | ||
@@ -27,40 +27,4 @@ export interface Filter { | ||
const table = document.querySelector('.tablesorter tbody')! | ||
const song_els = table.querySelectorAll('tr') | ||
const songs: Song[] = Array.from(song_els).map(el => { | ||
const [ | ||
player_col, | ||
genre_col, | ||
img_col, | ||
main_col, | ||
tags_col, | ||
date_col, | ||
tracks_col, | ||
_ | ||
] = Array.from(el.querySelectorAll('td')) | ||
const url = main_col.querySelector('a')!.href | ||
const date_obj = new Date( | ||
el.querySelectorAll('td[style="width:15%;"]')[1].innerHTML | ||
) | ||
const date = `${date_obj.getFullYear()}-${date_obj.getMonth()}-${date_obj.getDate()}` | ||
const genre = genre_col.querySelector('.genre')!.getAttribute('title')! | ||
const player = player_col.querySelector('.player-play')! | ||
const cover = player | ||
.getAttribute('data-cover')! | ||
.replace(/100x100/g, '325x325') | ||
const name = player.getAttribute('data-track')! | ||
const song_url = player.getAttribute('data-url')! | ||
const artists_el = player.getAttribute('data-artist')! | ||
const artists: Artist[] = artists_el.split(', ').map(art => { | ||
const art_el = new JSDOM(art).window.document.querySelector('a')! | ||
const url = art_el.getAttribute('href')! | ||
const name = art_el.innerHTML | ||
return new Artist(name, url) | ||
}) | ||
return new Song(name, date, genre, artists, url, cover, song_url) | ||
}) | ||
const songs = parse_table(table) | ||
return songs | ||
} |
@@ -16,3 +16,9 @@ import * as ncs from '../src/main' | ||
console.log('results Search') | ||
console.log(res[0], res.length) | ||
console.log(res[0], res.length, res[0].tags?.at(0), res[0].tags?.length) | ||
}) | ||
console.log('running artist info') | ||
ncs.getArtistInfo('/artist/466/unknown-brain').then(res => { | ||
console.log('results artist info') | ||
console.log({ ...res, songs: [res.songs[0]] }) | ||
}) |
51461
45
1727