From 1c9010916dc308b9a7e373d239ecca30fc29dd28 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Fri, 15 Dec 2023 23:54:14 -0800 Subject: add raw html --- HelpTOC.json | 1 + Map.jhm | 1 + config.json | 1 + current.help.version | 0 index.html | 9 +++++ patchwork-api.html | 1 + patchwork-archive.html | 1 + vtuber-captcha.html | 100 +++++++++++++++++++++++++++++++++++++++++++++++++ welcome.html | 1 + 9 files changed, 115 insertions(+) create mode 100644 HelpTOC.json create mode 100644 Map.jhm create mode 100644 config.json create mode 100644 current.help.version create mode 100644 index.html create mode 100644 patchwork-api.html create mode 100644 patchwork-archive.html create mode 100644 vtuber-captcha.html create mode 100644 welcome.html diff --git a/HelpTOC.json b/HelpTOC.json new file mode 100644 index 0000000..e1e181e --- /dev/null +++ b/HelpTOC.json @@ -0,0 +1 @@ +{"entities":{"pages":{"Welcome":{"id":"Welcome","title":"Welcome","url":"welcome.html","level":0,"tabIndex":0},"Patchwork-Archive":{"id":"Patchwork-Archive","title":"Patchwork Archive","url":"patchwork-archive.html","level":0,"pages":["Patchwork-API"],"tabIndex":1},"Patchwork-API":{"id":"Patchwork-API","title":"Patchwork Archive API","url":"patchwork-api.html","level":1,"parentId":"Patchwork-Archive","tabIndex":0},"VTuber-Captcha":{"id":"VTuber-Captcha","title":"VTuber Captcha","url":"vtuber-captcha.html","level":0,"tabIndex":2}}},"topLevelIds":["Welcome","Patchwork-Archive","VTuber-Captcha"]} \ No newline at end of file diff --git a/Map.jhm b/Map.jhm new file mode 100644 index 0000000..d78b563 --- /dev/null +++ b/Map.jhm @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..be9cf97 --- /dev/null +++ b/config.json @@ -0,0 +1 @@ +{"productVersion":"","productId":"hi","stage":"release","downloadTitle":"Get Project Knowledge Base","keymaps":{},"searchMaxHits":75,"productName":"Project Knowledge Base"} \ No newline at end of file diff --git a/current.help.version b/current.help.version new file mode 100644 index 0000000..e69de29 diff --git a/index.html b/index.html new file mode 100644 index 0000000..1072df3 --- /dev/null +++ b/index.html @@ -0,0 +1,9 @@ + + + +You will be redirected shortly + +

Redirecting…

+Click here if you are not redirected. + + diff --git a/patchwork-api.html b/patchwork-api.html new file mode 100644 index 0000000..32e997e --- /dev/null +++ b/patchwork-api.html @@ -0,0 +1 @@ + Patchwork Archive API | Project Knowledge Base

Project Knowledge Base Help

Patchwork Archive API

API data from Patchwork Archive is public and no API key is required to access what is publicly available on the frontend.

Below is an offering of what endpoints are available publicly. If you are for whatever reason hosting an instance of Patchwork-Backend please refer to the README in the repository for worker and queuer API endpoints

Gets archived videos from a particular channel

GET method/channel/{channel_id}

Gets a paginated result of archived videos matching a channel id

Request parameters

Responses

Gets archived videos from a particular channel

GET method/channel_name

Gets a paginated result of archived videos matching a channel id

Request parameters

Responses

Get basic information regarding a specific video

GET method/video/{video_id}

Pulls basic information about a video from fallback database only

Request parameters

Responses

Get a singular random video

GET method/random_video

Responses

Get multiple random videos

GET method/discover_videos

Request parameters

Responses

Get paginated search results for some keyword

GET method/search/results

Request parameters

Responses

Get today's daily features videos

GET method/daily_featured_videos

Either 1 or 2 video objects in an array depending on calculated hash

Responses

Get the 6 most recently archived videos

GET method/recently_archived

Responses

Get detailed information about the video if available

GET method/database/video_data/{video_id}

If info.json generated by yt-dlp is available it will be directly delivered here, if not, fallback video data from the database is used instead

Request parameters

Responses

Get the status of the database

GET method/database/status

Responses

Get the status of the database

GET method/storage/status

Gets the number of videos archived and space used in GB

Responses

Last modified: 16 December 2023
\ No newline at end of file diff --git a/patchwork-archive.html b/patchwork-archive.html new file mode 100644 index 0000000..24a64d6 --- /dev/null +++ b/patchwork-archive.html @@ -0,0 +1 @@ + Patchwork Archive | Project Knowledge Base

Project Knowledge Base Help

Patchwork Archive

Patchwork Archive is a project that centers around the preservation and archival of music created by virtual youtubers.

Worker scripts are ran which download and store videos identified as music, which are then hosted at patchwork.moekyun.me

In this section you'll find various information about Patchwork Archive as well as the documentation for how to call the publicly available API.

Patchwork Archive Video Page
Last modified: 16 December 2023
\ No newline at end of file diff --git a/vtuber-captcha.html b/vtuber-captcha.html new file mode 100644 index 0000000..eacb0d9 --- /dev/null +++ b/vtuber-captcha.html @@ -0,0 +1,100 @@ + VTuber Captcha | Project Knowledge Base

Project Knowledge Base Help

VTuber Captcha

A simple web API that serves VTuber related CAPTCHAs including server-side verification. Bring your own frontend to display the data.

Available Endpoints

The base URL or the API currently is: https://vtuber-captcha.vercel.app/api

Below are the current API endpoints supported: Authenticating Against the API

/affiliation/<org>

Returns a captcha asking user to identify which of the VTubers are affiliated with a particular organization or group

Path Parameters

  • <org>: Refer to organization page for a list of supported terms Query Parameters

  • server_auth: false if answers to captcha should be sent to response, true if you would like the API to store the answer and authenticate against it.

    • Default: false

    • Enums: true, false

Authenticating Answers Against The Server

The API supports server-side verification meaning that the answer to the CAPTCHA is never sent to you after making the initial request.

Instead, each request will be assigned a session-token which uniquely identifies the CAPTCHA. The server then saves the answer to the CAPTCHA. This makes it safe for you to directly call the API client-side from a frontend without the need for a middle-man to store the answer.

To authenticate answers against the API. You need to specify the query parameter ?server_auth=true

Example Response with ?server_auth=true

+{ + "category": "affiliation", + "onFail": { + "extra": null, + "text": "You got some wrong" + }, + "questions": [ + { + "id": "UCgZuwn-O7Szh9cAgHqJ6vjw", + "image": "https://yt3.ggpht.com/ytc/AMLnZu_aQ3akSpFc9SVPcFMXATjdKZAcmy1aXtGq364A=s800-c-k-c0x00ffffff-no-rj", + "name": "Aloe Ch.魔乃アロエ" + }, + { + "id": "UC7MMNHR-kf9EN1rXiesMTMw", + "image": "https://yt3.ggpht.com/8SFoIMf_6XTf0jyeLd6Txdl96BqSyGhb250P3qEh7E4ui8fLNxLXLiLf7phYVy0CIYx3as42=s800-c-k-c0x00ffffff-no-rj", + "name": "Magni Dezmond Ch. HOLOSTARS-EN" + }, + { + "id": "UCwL7dgTxKo8Y4RFIKWaf8gA", + "image": "https://yt3.ggpht.com/ytc/AOPolaStFlTJ6ISi2Wuwz7L_OLHHShXfoVPDDnqsPWLb=s800-c-k-c0x00ffffff-no-rj", + "name": "Oga Ch.荒咬オウガ" + }, + { + "id": "UCdn5BQ06XqgXoAxIhbqw5Rg", + "image": "https://yt3.ggpht.com/ytc/AOPolaSFPK_6xlqthNXIpMC7OTWfGsDAoNkR9OexBYxcpA=s800-c-k-c0x00ffffff-no-rj", + "name": "フブキCh。白上フブキ" + }, + { + "id": "UCa9Y57gfeY0Zro_noHRVrnw", + "image": "https://yt3.ggpht.com/O7m_5HMY_O8yxR3Jhn9cEO1fLNL_GifMERExnAmfY7JrdTRsTjNijTcNYTPN97Llj3zGn8Susw=s800-c-k-c0x00ffffff-no-rj", + "name": "Luna Ch. 姫森ルーナ" + }, + { + "id": "UC1CfXB_kRs3C-zaeTG3oGyg", + "image": "https://yt3.ggpht.com/B2tq3IQAFxUe9W3MaMc0V62bmlTWCSoTuCk-Y-Ab8yXkZKdIswQhHABZhz2e4YM1-B_Kxen_7w=s800-c-k-c0x00ffffff-no-rj", + "name": "HAACHAMA Ch 赤井はあと" + }, + { + "id": "UCw1KNjVqfrJSfcFd6zlcSzA", + "image": "https://yt3.ggpht.com/7QQ7vnkdwS7e8cLY6YYRoLTLftUxQCopsIxE7L9Qd6vXW_TsCjb4YZDVqYTJ3qceAAqWtwQH=s800-c-k-c0x00ffffff-no-rj", + "name": "Nia Suzune / 鈴音にあ [PRISM Project]" + }, + { + "id": "UCambvP8yxNDot4FzQc9cgiw", + "image": "https://yt3.ggpht.com/EgL9iOOKL7KiLIBxjqJO6gmVJE7BJ4xqfmgyis_QQ9zdbYAD_Pco7xagjdpWCTFoPbgxEXyJ=s800-c-k-c0x00ffffff-no-rj", + "name": "宇佐美リト / Usami Rito【にじさんじ】" + }, + { + "id": "UCqEp6RdtsMbUNrCdCswr6pA", + "image": "https://yt3.ggpht.com/ytc/AMLnZu9ZF7fPn4IghqjrWH-SFrdSzlY9EMtkkoUntGLWLA=s800-c-k-c0x00ffffff-no-rj", + "name": "海夜叉神/黄泉波咲夜【にじさんじ】" + }, + { + "id": "UC6TfqY40Xt1Y0J-N18c85qQ", + "image": "https://yt3.ggpht.com/50JCdIpi9B-ZxDaveVfSyKuvRyj8d2DgLe0sMkd_UxuxN-VcGQ54W4M-6T0wXzJV2TdfAeZglSc=s800-c-k-c0x00ffffff-no-rj", + "name": "安土桃" + }, + { + "id": "UCFTLzh12_nrtzqBPsTCqenA", + "image": "https://yt3.ggpht.com/ytc/AOPolaRF12upNUVmDXfH2A7ViS-gyKCcAvAQXTyEmbWAcA=s800-c-k-c0x00ffffff-no-rj", + "name": "アキロゼCh。Vtuber/ホロライブ所属" + }, + { + "id": "UCMwGHR0BTZuLsmjY_NT5Pwg", + "image": "https://yt3.ggpht.com/f4uYWHJxiGwyXm8NUlm818N1MRnywtgL6wM8JdWqWsKBzI7v1eg8dxDWG7igkWuukUSiufydqPg=s800-c-k-c0x00ffffff-no-rj", + "name": "Ninomae Ina'nis Ch. hololive-EN" + }, + { + "id": "UC6oW4FXETgEGOFTxWmI2h5Q", + "image": "https://yt3.ggpht.com/ytc/AMLnZu_clEsYJi5qCPCpxCuw2qMwB5rfcm2hgDITVRRn=s800-c-k-c0x00ffffff-no-rj", + "name": "Noor【NIJISANJI IN】" + }, + { + "id": "UC_sFNM0z0MWm9A6WlKPuMMg", + "image": "https://yt3.ggpht.com/JDCIBWj11TgjY2Uyba_efZ0n5hzjysMB9GxkvHGkIN_sfFQJR5mx3iVPqgJ96IPcYjZpCLsb=s800-c-k-c0x00ffffff-no-rj", + "name": "Nerissa Ravencroft Ch. hololive-EN" + }, + { + "id": "UCnYhIk9aGEx_bIgheVjs53w", + "image": "https://yt3.ggpht.com/ytc/AOPolaRL4Pk2cC2Q0GXLV-N9tSPZkCDp_c2RqdQEBpY-=s800-c-k-c0x00ffffff-no-rj", + "name": "Luto Araka / 新火ると [PRISM Project]" + }, + { + "id": "UCIytNcoz4pWzXfLda0DoULQ", + "image": "https://yt3.ggpht.com/21x1Ab6pEffGItAcNTjcYUkG3IzQ1y--5cUUjtEhrUEuz2iCttL08vswnPRe1XvtBaZ0yUAm=s800-c-k-c0x00ffffff-no-rj", + "name": "エクス・アルビオ -Ex Albio-" + } + ], + "session": "GUQkquh03dwF84EAxif_EA", + "title": "Select all the VTuber affiliated with Hololive" +} +

To check your answers against the API. Send session token and the id of each selected element as a string comma separated as part of a data payload to /api/verify

Example Payload

+session: "j4WjkoMcPgNX8_gnNXf8HA" +answer: "UC0ZTVxCHkZanT5dnP2FZD4Q,UC4WvIIAo89_AzGUh1AZ6Dkg,UCe0JiGnjPfEwEIbWASbOimw" +

Response:

+{ + success: false +} +

In the case above the user selected:

  • UC0ZTVxCHkZanT5dnP2FZD4Q

  • UC4WvIIAo89_AzGUh1AZ6Dkg

  • UCe0JiGnjPfEwEIbWASbOimw

and their answer was incorrect.

After failing a captcha, the token becomes invalidated and a request for a new CAPTCHA must be made

Supported Keywords

Organization

  • Hololive: All hololive Production affiliated members, including Holostars

  • Nijisanji: All Nijisanji affiliated livers, including EN branches (does not include VirtuaReal)

Last modified: 16 December 2023
\ No newline at end of file diff --git a/welcome.html b/welcome.html new file mode 100644 index 0000000..8e59e19 --- /dev/null +++ b/welcome.html @@ -0,0 +1 @@ + Welcome | Project Knowledge Base

Project Knowledge Base Help

Welcome

Welcome to a collection of documentation for some of the various things I have over on GitHub.

These docs should serve as both a guide and archive of previously of both currently active and previously projects.

Last modified: 16 December 2023
\ No newline at end of file -- cgit v1.2.3