import Head from 'next/head' import styles from '../styles/Index.module.css' import Header from '../components/header'; import Footer from '../components/footer'; import Socials from '../components/socials'; import TwitchPopup from '../components/twitchpopup'; const client_id = "edpx4oisrkpnrlx47b7a2p3govy6qm"; const client_secret = "dqr2glvdhr7uyn3bf3biu48977rfwo"; export default function Index({ motto, twitch_online, about }) { return (
Trick - Homepage

Hi, I'm Trick!

{motto}

About me

{about}

) } async function getAboutText() { const req = await fetch("https://api.airtable.com/v0/appQnOyKBnBVQXLUM/Locale", { method: "GET", headers: { 'Content-Type': 'application/json', "Authorization": "Bearer " + process.env.AIRTABLE, } }); const data = await req.json(); for(const key in data['records']) { if(data['records'][key]['fields']['field'] == "about") { return data['records'][key]['fields']['value']; } }; return ""; } async function getMottos() { const req = await fetch("https://api.airtable.com/v0/appQnOyKBnBVQXLUM/Mottos", { method: "GET", headers: { 'Content-Type': 'application/json', "Authorization": "Bearer " + process.env.AIRTABLE, } }); const data = await req.json(); let mottoArray = []; for(const key in data['records']) { mottoArray.push(data['records'][key]['fields']['motto']); } return mottoArray; } async function getAccessToken() { const req = await fetch("https://id.twitch.tv/oauth2/token?client_id=" + client_id + "&client_secret=" + client_secret + "&grant_type=client_credentials", { method: "POST", headers: { 'Content-Type': 'application/json' } }) const data = await req.json(); return data['access_token']; } async function getIsUserLive() { const access_token = await getAccessToken(); let userId = 268280947; // trick_the_fox; const req = await fetch("https://api.twitch.tv/helix/streams?user_id=" + userId, { method: "GET", headers: { 'Content-Type': 'application/json', "Authorization": "Bearer " + access_token, "Client-ID": client_id, } }); const data = await req.json(); if(data['data'].length > 0) { return true; } return false; } async function RandomMotto() { const Mottos = await getMottos(); const randomNumber = Math.floor(Math.random() * Mottos.length); return Mottos[randomNumber]; } export async function getServerSideProps() { return { props: { motto: await RandomMotto(), twitch_online: await getIsUserLive(), about: await getAboutText() } }; }