From 2a956005dbd59d64e416b5b553453a08adb05acd Mon Sep 17 00:00:00 2001 From: WooKyoung Noh Date: Sun, 10 Nov 2019 15:36:48 +0900 Subject: [PATCH] examples --- Project.toml | 1 + README.md | 15 ++++++++++++++- examples/clips.jl | 10 ++++++++++ src/API.jl | 13 +++++++------ src/APIv5.jl | 7 ++++--- 5 files changed, 36 insertions(+), 10 deletions(-) create mode 100644 examples/clips.jl diff --git a/Project.toml b/Project.toml index bffec4d..c1f6330 100644 --- a/Project.toml +++ b/Project.toml @@ -6,6 +6,7 @@ version = "0.1.0" [deps] HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" +JSON2 = "2535ab7d-5cd8-5a07-80ac-9b1792aadce3" [extras] Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/README.md b/README.md index 9c9f1e9..a076442 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# TwitchTools.jl +# TwitchTools.jl | **Build Status** | |:----------------------------------------------------------------:| @@ -7,6 +7,19 @@ https://dev.twitch.tv/docs/ +```julia +using TwitchTools.API +client_id = get(ENV, "TWITCH_CLIENT_ID", "") +clip = API.get_clip(client_id, "LittleGrossSoybeanHassanChop") +@info clip +@info clip.data[1].broadcaster_name + +using TwitchTools.APIv5 +clip = APIv5.get_clip(client_id, "LittleGrossSoybeanHassanChop") +@info clip +@info clip.broadcaster.display_name +``` + [travis-img]: https://api.travis-ci.org/wookay/TwitchTools.jl.svg?branch=master [travis-url]: https://travis-ci.org/wookay/TwitchTools.jl diff --git a/examples/clips.jl b/examples/clips.jl new file mode 100644 index 0000000..3109622 --- /dev/null +++ b/examples/clips.jl @@ -0,0 +1,10 @@ +using TwitchTools.API +client_id = get(ENV, "TWITCH_CLIENT_ID", "") +clip = API.get_clip(client_id, "LittleGrossSoybeanHassanChop") +@info clip +@info clip.data[1].broadcaster_name + +using TwitchTools.APIv5 +clip = APIv5.get_clip(client_id, "LittleGrossSoybeanHassanChop") +@info clip +@info clip.broadcaster.display_name diff --git a/src/API.jl b/src/API.jl index aea23f5..f68b890 100644 --- a/src/API.jl +++ b/src/API.jl @@ -2,25 +2,26 @@ module API # TwitchTools using ..TwitchTools: HTTP, TWITCH_API_SERVER, http_action using Dates: Dates, Date, DateTime, DateFormat +using JSON2 const RFC3339 = DateFormat("yyyy-mm-dd\\THH:MM:SSZ") function get_clip(client_id::String, clip_id::String ; - endpoint::HTTP.URI=TWITCH_API_SERVER, - action::Function=http_action)::Vector{UInt8} + endpoint::HTTP.URI = TWITCH_API_SERVER, + action::Function = http_action) headers = ["Client-ID"=>client_id] query = Dict{String,String}("id" => clip_id) resp = action(endpoint, "/helix/clips", headers, query) - resp.body + data = JSON2.read(IOBuffer(resp.body)) end function get_clips_by_broadcaster(client_id::String, broadcaster_id::Int, started_at::Union{Nothing, Date, DateTime}, ended_at::Union{Nothing, Date, DateTime} ; # started_at + 1 week - endpoint::HTTP.URI=TWITCH_API_SERVER, - action::Function=http_action)::Vector{UInt8} + endpoint::HTTP.URI = TWITCH_API_SERVER, + action::Function = http_action) headers = ["Client-ID"=>client_id] query = Dict{String,String}("broadcaster_id" => string(broadcaster_id)) if !isnothing(started_at) @@ -30,7 +31,7 @@ function get_clips_by_broadcaster(client_id::String, query["ended_at"] = Dates.format(ended_at, RFC3339) end resp = action(endpoint, "/helix/clips", headers, query) - resp.body + data = JSON2.read(IOBuffer(resp.body)) end end # TwitchTools.API diff --git a/src/APIv5.jl b/src/APIv5.jl index b4ce031..7c3f872 100644 --- a/src/APIv5.jl +++ b/src/APIv5.jl @@ -1,14 +1,15 @@ module APIv5 # TwitchTools using ..TwitchTools: HTTP, TWITCH_API_SERVER, http_action +using JSON2 function get_clip(client_id::String, clip_id::String ; - endpoint::HTTP.URI=TWITCH_API_SERVER, - action::Function=http_action)::Vector{UInt8} + endpoint::HTTP.URI = TWITCH_API_SERVER, + action::Function = http_action) headers = ["Client-ID"=>client_id, "Accept"=>"application/vnd.twitchtv.v5+json"] resp = action(endpoint, "/kraken/clips/$clip_id", headers) - resp.body + data = JSON2.read(IOBuffer(resp.body)) end end # TwitchTools.APIv5