diff --git a/package-lock.json b/package-lock.json index 5646b11..ee5ab49 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5854,7 +5854,8 @@ }, "safe-buffer": { "version": "5.1.1", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5946,7 +5947,8 @@ }, "yallist": { "version": "3.0.2", - "bundled": true + "bundled": true, + "optional": true } } }, diff --git a/src/GeneralTab.css b/src/GeneralTab.css new file mode 100644 index 0000000..efe335a --- /dev/null +++ b/src/GeneralTab.css @@ -0,0 +1,6 @@ +.fade { + opacity: 200; + /* -webkit-transition: opacity .15s linear; */ + -o-transition: opacity .15s linear; + /* transition: opacity .15s linear; */ +} \ No newline at end of file diff --git a/src/GeneralTab.js b/src/GeneralTab.js new file mode 100644 index 0000000..c462d58 --- /dev/null +++ b/src/GeneralTab.js @@ -0,0 +1,138 @@ +import React, { Component } from 'react'; +import './App.css'; +import './GeneralTab.css'; +import 'bootstrap/dist/css/bootstrap.css'; +import {Tab,Tabs,ListGroup,ListGroupItem} from 'react-bootstrap'; +import axios from "axios"; +import Card from "react-bootstrap/lib/Card"; +import Linkify from 'react-linkify'; + +class GeneralTab extends Component { + constructor() { + super(); + this.state = { + comments: [], + info : [] + }; + } + + componentDidMount(){ + //Richiesta per ottenere i commenti del video + axios.get('https://www.googleapis.com/youtube/v3/commentThreads', { + params: { + 'part': 'snippet', + 'videoId': 'qeMFqkcPYcg', //Da sostituire con variabile + 'order': 'relevance', + 'key': 'AIzaSyA21Odw9UdfiOJnxvA_eDfOW0OxuUfHKig' + } + }).then( + response => { + this.setState({ + comments: response.data.items, + }); + }, + error => { + console.error(error); + } + ) + //Richiesta per ottenere le informazioni sul video(Descrizione,dati tecnici,ecc...) + axios.get('https://www.googleapis.com/youtube/v3/videos', { + params: { + 'part' : 'snippet,contentDetails,statistics', + 'id' : 'qeMFqkcPYcg', //Da sostituire con variabile + 'key': 'AIzaSyA21Odw9UdfiOJnxvA_eDfOW0OxuUfHKig' + } + }).then( + response => { + this.setState({ + info : response.data.items, + }); + }, + error => { + console.error(error); + } + ) + } + + render() { + return ( + + +
+ {this.state.info.map(function(item,index){ + return( +
+

{item.snippet.title}

+ +
ID Video
{item.id}
+
Publish Time
{item.snippet.publishedAt.replace(/(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+).000Z/,function(match,p1,p2,p3,p4,p5,p6){ + return(p3+'/'+p2+'/'+p1+' - '+p4+':'+p5+':'+p6); + })} +
+
Channel Name
{item.snippet.channelTitle}
+
Description
{item.snippet.description}
+
Tags
{item.snippet.tags.map(function(element,index){ + return( + {element} + ) + })}
+
+
+ ) + } + )} +
+
+ +
+ {this.state.info.map(function (item,index) { + return( +
+

{item.snippet.title}

+ +
Duration
{item.contentDetails.duration.replace(/(PT(\d+)H(\d+)M(\d+)S)|(PT(\d+)M(\d+)S)/,function(match,p1,p2,p3,p4,p5,p6,p7){ + if(p1) return(p2+':'+p3+':'+p4); + else return(p6+':'+p7);})} +
+
Definition
{item.contentDetails.definition}
+
Dimension
{item.contentDetails.dimension}
+
Views
{item.statistics.viewCount}
+
Likes
{item.statistics.likeCount}
+
Dislikes
{item.statistics.dislikeCount}
+
+
+ ) + })} +
+
+ + + + +
+ +
+
+
+ ); + } +} + +export default GeneralTab; \ No newline at end of file