diff --git a/node-entry.js b/node-entry.js
index a63b013..c93c72e 100644
--- a/node-entry.js
+++ b/node-entry.js
@@ -68,6 +68,9 @@ low(new FileAsync(__dirname + '/db.json')) // production
// POST /videotrack
app.post('/videotrack', (req, res) => {
+ res.set({
+ 'Access-Control-Allow-Origin': '*'
+ });
const videos = db.get('videos');
const row = videos.getById(req.body.id);
if (row.value()) {
@@ -82,7 +85,7 @@ low(new FileAsync(__dirname + '/db.json')) // production
"timesWatched": 1,
"lastWatched": new Date().toISOString(),
}
- videos.push(newRow).last().write().then(output => res.send(output))
+ videos.push(newRow).last().write().then(output => res.send(200,output))
}
});
diff --git a/package.json b/package.json
index 17161fc..11de2af 100644
--- a/package.json
+++ b/package.json
@@ -32,6 +32,7 @@
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
+ "build2": "GENERATE_SOURCEMAP=false react-scripts build",
"test": "react-scripts test",
"node": "npm run build && node ./node-entry.js",
"eject": "react-scripts eject"
diff --git a/src/VideoPlayer.js b/src/VideoPlayer.js
index c820c14..9c2b65b 100644
--- a/src/VideoPlayer.js
+++ b/src/VideoPlayer.js
@@ -15,7 +15,8 @@ class VideoPlayer extends React.Component {
modestbranding: 1,
fs: 0,
iv_load_policy:3,
- rel: 0
+ rel: 0,
+ origin//: 'http://site1854.tw.cs.unibo.it'
}
},
promise1: null,
@@ -91,7 +92,7 @@ class VideoPlayer extends React.Component {
})
.then(
response => console.info(response.data),
- error => console.error(error, videoIdWatched.toString())
+ error => this.setState({error})//console.error(error, videoIdWatched.toString())
);
// local storage logic for recent reccomender//tmp รจ il video che devo inserire sulla lista
let tmp = JSON.parse(localStorage.getItem('lastWatched'))
diff --git a/src/Wikipedia.js b/src/Wikipedia.js
index 86dd993..6f0e3c3 100644
--- a/src/Wikipedia.js
+++ b/src/Wikipedia.js
@@ -1,10 +1,11 @@
import React, { Component } from 'react';
-// import PropTypes from 'prop-types';
+import { Link } from 'react-router-dom';
import wikijs from 'wikijs';
import wdk from 'wikidata-sdk';
import axios from 'axios';
import { Table } from 'react-bootstrap';
import moment from 'moment';
+import "./css/Wikipedia.css"
class Wikipedia extends Component {
@@ -26,9 +27,23 @@ class Wikipedia extends Component {
return moment(a, [moment.ISO_8601, 'YYYY']).format('YYYY');
}
- filterWikipediaRes(results) {
- console.log('filterWikipediaRes', results);
- return results[0];
+ getExternalLink(P, value) {
+ switch (P) {
+ case "P436": //MB release group id
+ return ({`${value}`})
+ case "P435": // MB work id
+ return ({`${value}`})
+ case "P1954": // discogs id
+ return ({`${value}`})
+ case "P2624": // metrolyrics id
+ return ({`${value}`})
+ case "P1651": // youtubeid
+ return ( {`${value}`})
+ case "P2581":
+ return ({`${value}`})
+ default:
+ return(`${value}`)
+ }
}
getWikidataPage(wikidataPXXXXResID) {
@@ -36,13 +51,22 @@ class Wikipedia extends Component {
.then(wikidataPage => {
let wikidatatmp = wikidataPage.data.entities[Object.keys(wikidataPage.data.entities)[0]];
this.setState({
- wikidata: wikidatatmp,
- wikidatakeys: Object.keys(wikidatatmp.claims),
- isWDataLoaded: true
+ wikidata: wikidatatmp
});
- wdk.getManyEntities(Object.keys(wikidatatmp.claims), 'en').then(
- res=> console.info(res,'eee')
- )
+ axios.all([
+ axios.get(wdk.getManyEntities(Object.keys(wikidatatmp.claims), 'en'))
+ , axios.get(wdk.getManyEntities(
+ Object.keys(wikidatatmp.claims)
+ .map(x => wikidatatmp.claims[x][0].mainsnak.datavalue.value.id)
+ .filter(x => typeof x === 'string'), 'en'))
+ ])
+ .then(axios.spread((resKey, resQ) => {
+ this.setState({
+ wikidatakeys: Object.entries(resKey.data.entities),
+ wikidataQ: resQ.data.entities,
+ isWDataLoaded: true
+ })
+ }))
if (wikidatatmp.sitelinks.enwiki)
wikijs()
.page(wikidatatmp.sitelinks.enwiki.title)
@@ -55,9 +79,10 @@ class Wikipedia extends Component {
wikipediakeys: Object.keys(wikipediaRes[0].general),
isWikiLoaded: true
}))
- else{ console.info('called here')
- this.findWikiPage();}
-
+ else {
+ console.info('called here')
+ this.findWikiPage();
+ }
}, error => console.error(error))
}
@@ -66,8 +91,8 @@ class Wikipedia extends Component {
console.info(wikiquery)
return wikijs()
.find(wikiquery)
- .then(res => {
- console.info(res,'a');
+ .then(res => {
+ console.info(res, 'a');
return Promise.all([res.fullInfo(), res.summary()]);
}) // find by props.title (props.artist song)
.then(wikipediaRes => this.setState({
@@ -80,9 +105,10 @@ class Wikipedia extends Component {
}))
}
- wrapper() {
+ componentDidMount() {
const musicbrainzBaseUrl = "https://musicbrainz.org/ws/2"; // more readable
- return axios.get(wdk.getReverseClaims('P1651', this.props.videoId)) // P1651 is youtube_video_id property
+ // let timerId1;
+ axios.get(wdk.getReverseClaims('P1651', this.props.videoId)) // P1651 is youtube_video_id property
.then(wikidataP1651Res => {
if (wikidataP1651Res.data.results.bindings.length) { // got a match
this.getWikidataPage(wdk.simplify.sparqlResults(wikidataP1651Res.data))// set in state wikidata
@@ -145,8 +171,8 @@ class Wikipedia extends Component {
})
]).then(
axios.spread((wikidataP435Res, musicbrainzWorkRes) => {
- this.setState({
- musicbrainz: musicbrainzWorkRes.data,
+ this.setState({
+ musicbrainz: musicbrainzWorkRes.data,
isMBLoaded: true
});
if (wikidataP435Res.data.results.bindings.length) // found a match
@@ -163,16 +189,19 @@ class Wikipedia extends Component {
)
})
}
- return new Promise((resolve, reject) => resolve('ok'));
+
+ }).finally(() => {
+ // let tmp = JSON.parse(localStorage['currentVideoInfo']);
+ // tmp.id = this.props.videoId;
+ // tmp.artist = this.state.wikipedia.info.artist;
+ // tmp.genre = this.state.wikidataQ[this.state.wikidata.claims["P136"][0].mainsnak.datavalue.value.id].labels.en.value;
+ // console.info(tmp)
+ // // localStorage.setItem('currentVideoInfo',JSON.stringify(tmp));
+ this.setState({ isLoaded: true })
});
}
- componentDidMount() {
- this.wrapper().then(() => this.setState({ isLoaded: true }));
- }
-
-
// shouldComponentUpdate(nextProps, nextState) {
// }
@@ -193,7 +222,8 @@ class Wikipedia extends Component {
} else if (!this.state.isLoaded) {
return
| {`${key} - ${wikidata.claims[key][0].mainsnak.datatype}`} | +||
| {`${key[0]} - + ${key[1].labels.en ? key[1].labels.en.value : ""} `} + | { - typeof wikidata.claims[key][0].mainsnak.datavalue.value === "string" ? - wikidata.claims[key][0].mainsnak.datavalue.value : - typeof wikidata.claims[key][0].mainsnak.datavalue.value.id === "string" ? - wikidata.claims[key][0].mainsnak.datavalue.value.id : - typeof wikidata.claims[key][0].mainsnak.datavalue.value.time === "string" ? - ISO_8601toYYYY(wikidata.claims[key][0].mainsnak.datavalue.value.time.toString()) : + typeof wikidata.claims[key[0]][0].mainsnak.datavalue.value === "string" ? + this.getExternalLink(key[0],wikidata.claims[key[0]][0].mainsnak.datavalue.value) : + typeof wikidata.claims[key[0]][0].mainsnak.datavalue.value.id === "string" ? + <> + {`${this.state.wikidataQ[wikidata.claims[key[0]][0].mainsnak.datavalue.value.id].labels.en ? + this.state.wikidataQ[wikidata.claims[key[0]][0].mainsnak.datavalue.value.id].labels.en.value : + "??"}`} + {`(${wikidata.claims[key[0]][0].mainsnak.datavalue.value.id})`}> : + typeof wikidata.claims[key[0]][0].mainsnak.datavalue.value.time === "string" ? + ISO_8601toYYYY(wikidata.claims[key[0]][0].mainsnak.datavalue.value.time.toString()) : "" } | |
| {relation.type} | -{relation.type} | +{relation.type} |