Skip to content

Instantly share code, notes, and snippets.

@hiiamyes
hiiamyes / cnn10-transcript-mirror-web.js
Created April 18, 2019 23:15
cnn10-transcript-mirror
import React from "react"
import { StaticQuery, graphql } from "gatsby"
const IndexPage = () => (
<StaticQuery
query={graphql`
query IndexPageQuery {
api {
transcripts {
date
title
@hiiamyes
hiiamyes / cnn10-transcript-mirror-api.js
Created April 18, 2019 23:10
cnn10-transcript-mirror
require("dotenv").config();
const { ApolloServer, gql } = require("apollo-server");
const axios = require("axios");
const redis = require("redis");
const { compose, map, orderBy } = require("lodash/fp");
const Promise = require("bluebird");
Promise.promisifyAll(redis);
redisClient = redis.createClient({ port: process.env.REDIS_PORT });
const typeDefs = gql`
type Transcript {
@hiiamyes
hiiamyes / cnn10-transcript-mirror-crawler.js
Created April 18, 2019 22:10
cnn10-transcript-mirror
require("dotenv").config();
const redis = require("redis");
const Promise = require("bluebird");
const moment = require("moment");
const axios = require("axios");
const cheerio = require("cheerio");
Promise.promisifyAll(redis);
redisClient = redis.createClient({ port: process.env.REDIS_PORT });
@hiiamyes
hiiamyes / GlobalStyle.js
Created April 17, 2019 21:10
GlobalStyle component
import { createGlobalStyle } from "styled-components"
const GlobalStyle = createGlobalStyle`
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
}
`
@hiiamyes
hiiamyes / data-visualization-2-draw.js
Last active April 6, 2019 02:19
data-visualization-2-draw
import { map } from "lodash/fp";
import * as d3 from "d3";
const margin = { top: 50, right: 50, bottom: 100, left: 50 };
const container = {
width: window.innerWidth,
height: 480
};
const chart = {
width: container.width - margin.left - margin.right,
height: container.height - margin.top - margin.bottom
@hiiamyes
hiiamyes / data-visualization-2-graphql.js
Last active April 5, 2019 18:40
data-visualization-2-graphql
import React, { useState, useEffect } from "react";
import axios from "axios";
import { draw } from "./chart";
const App = () => {
const [rainfalls, setRainfalls] = useState(null);
useEffect(() => {
async function get() {
const {
data: {
data: { station }
@hiiamyes
hiiamyes / graphql-server.js
Created March 29, 2019 19:14
data-visualization-1
const { ApolloServer, gql } = require("apollo-server");
const typeDefs = gql`
type Rainfall {
date: String
value: String
}
type Station {
id: String
rainfalls: [Rainfall]
}
@hiiamyes
hiiamyes / data-visualization-1-fetchData.js
Last active March 29, 2019 19:03
data-visualization-1
const redis = require("redis");
const Promise = require("bluebird");
Promise.promisifyAll(redis);
redisClient = redis.createClient({ port: process.env.REDIS_PORT });
(async () => {
const res = await axios.request({
url: "https://opendata.cwb.gov.tw/api/v1/rest/datastore/C-B0025-001",
params: {
Authorization: process.env.TOKEN
@hiiamyes
hiiamyes / index.js
Created July 19, 2018 06:27
Carousel
import React, { Component } from "react";
import Style from "./style";
class Carousel extends Component {
componentDidMount() {
const width = this.slickList.getBoundingClientRect().width;
this.slickTrack.style.width = `${width * this.props.children.length}px`;
this.slickTrack.querySelectorAll(".slick-slide").forEach(slide => {
slide.style.width = `${width}px`;
});
@hiiamyes
hiiamyes / countries.json
Created March 30, 2018 07:14
Country.js
[
{ "name": "Afghanistan", "alpha2Code": "AF", "alpha3Code": "AFG" },
{ "name": "Aland Islands", "alpha2Code": "AX", "alpha3Code": "ALA" },
{ "name": "Albania", "alpha2Code": "AL", "alpha3Code": "ALB" },
{ "name": "Algeria", "alpha2Code": "DZ", "alpha3Code": "DZA" },
{ "name": "American Samoa", "alpha2Code": "AS", "alpha3Code": "ASM" },
{ "name": "Andorra", "alpha2Code": "AD", "alpha3Code": "AND" },
{ "name": "Angola", "alpha2Code": "AO", "alpha3Code": "AGO" },
{ "name": "Anguilla", "alpha2Code": "AI", "alpha3Code": "AIA" },
{ "name": "Antarctica", "alpha2Code": "AQ", "alpha3Code": "ATA" },