diff options
| author | Pinapelz <yukais@pinapelz.com> | 2023-12-15 23:31:29 -0800 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2023-12-15 23:31:29 -0800 |
| commit | 81a8bcff49b1515bd31215c871c2545794d82fbb (patch) | |
| tree | 95d100d815cbdd827beb706944943753a4cc228d | |
Initial commit
| -rw-r--r-- | .idea/.gitignore | 3 | ||||
| -rw-r--r-- | .idea/KnowledgeBase.iml | 8 | ||||
| -rw-r--r-- | .idea/modules.xml | 8 | ||||
| -rw-r--r-- | .idea/vcs.xml | 6 | ||||
| -rw-r--r-- | Writerside/api-docs/patchwork-archive-api.yml | 324 | ||||
| -rw-r--r-- | Writerside/c.list | 6 | ||||
| -rw-r--r-- | Writerside/hi.tree | 13 | ||||
| -rw-r--r-- | Writerside/images/completion_procedure.png | bin | 0 -> 128146 bytes | |||
| -rw-r--r-- | Writerside/images/completion_procedure_dark.png | bin | 0 -> 68718 bytes | |||
| -rw-r--r-- | Writerside/images/convert_table_to_xml.png | bin | 0 -> 349338 bytes | |||
| -rw-r--r-- | Writerside/images/convert_table_to_xml_dark.png | bin | 0 -> 121495 bytes | |||
| -rw-r--r-- | Writerside/images/new_topic_options.png | bin | 0 -> 293755 bytes | |||
| -rw-r--r-- | Writerside/images/new_topic_options_dark.png | bin | 0 -> 156186 bytes | |||
| -rw-r--r-- | Writerside/topics/Default-topic.md | 80 | ||||
| -rw-r--r-- | Writerside/topics/Patchwork-API.md | 7 | ||||
| -rw-r--r-- | Writerside/topics/Patchwork-Archive.md | 9 | ||||
| -rw-r--r-- | Writerside/topics/VTuber-Captcha.md | 152 | ||||
| -rw-r--r-- | Writerside/topics/Welcome.md | 6 | ||||
| -rw-r--r-- | Writerside/v.list | 5 | ||||
| -rw-r--r-- | Writerside/writerside.cfg | 10 |
20 files changed, 637 insertions, 0 deletions
diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/KnowledgeBase.iml b/.idea/KnowledgeBase.iml new file mode 100644 index 0000000..6102194 --- /dev/null +++ b/.idea/KnowledgeBase.iml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="EMPTY_MODULE" version="4"> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$" /> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module>
\ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..76dfed3 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/KnowledgeBase.iml" filepath="$PROJECT_DIR$/.idea/KnowledgeBase.iml" /> + </modules> + </component> +</project>
\ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project>
\ No newline at end of file diff --git a/Writerside/api-docs/patchwork-archive-api.yml b/Writerside/api-docs/patchwork-archive-api.yml new file mode 100644 index 0000000..c17c0c6 --- /dev/null +++ b/Writerside/api-docs/patchwork-archive-api.yml @@ -0,0 +1,324 @@ +openapi: 3.0.3 +info: + title: Patchwork Archive API + description: |- + API data from Patchwork Archive is public and **no API key** is required to access what is publicly available on the frontend. + + license: + name: MIT License + url: https://opensource.org/license/mit/ + version: MIT +servers: + - url: https://archive.pinapelz.moe/api +tags: + - name: channel + description: Data regarding a specific channel + - name: video + description: Data regarding archived videos + - name: database + description: More detailed data regarding videos +paths: + /channel/{channel_id}: + get: + tags: + - channel + summary: Gets archived videos from a particular channel + description: Gets a paginated result of archived videos matching a channel id + parameters: + - name: channel_id + in: path + description: YouTube Channel ID + required: true + schema: + type: string + - name: page + in: query + description: Page of video to show (starts on page 1) + required: true + schema: + type: integer + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Video' + /channel_name: + get: + tags: + - channel + summary: Gets archived videos from a particular channel + description: Gets a paginated result of archived videos matching a channel id + parameters: + - name: channel_id + in: query + description: YouTube Channel ID + required: true + schema: + type: string + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: object + properties: + channel_name: + type: string + example: Erina Ch. エリナ・マキナ 【Phase Connect】 + + + /video/{video_id}: + get: + tags: + - video + summary: Get basic information regarding a specific video + description: Pulls basic information about a video from fallback database only + operationId: getBasicVideoInfo + parameters: + - name: video_id + in: path + description: YouTube Video ID + required: true + schema: + type: string + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: object + properties: + channel_id: + type: string + example: UCupmjRr7kPgzXKh-cPxxGbg + channel_name: + type: string + example: Erina Ch. エリナ・マキナ 【Phase Connect】 + description: + type: string + example: The very long description portion + title: + type: string + example: イート / jon-YAKITORY feat.Ado - eat / cover by erina makina + upload_date: + type: string + example: 2022-07-11 + video_id: + type: string + example: bX8-8928lcM + '404': + description: Video not found + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Video ID does not exist" + + /random_video: + get: + tags: + - video + summary: Get a singular random video + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Video' + + /discover_videos: + get: + tags: + - video + summary: Get multiple random videos + parameters: + - name: count + in: query + description: Number of random videos to get (default=1) + required: false + schema: + type: integer + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Video' + + /search/results: + get: + tags: + - video + summary: Get paginated search results for some keyword + parameters: + - name: q + in: query + description: Keywords to search for + required: true + schema: + type: string + - name: page + in: query + description: Page number for results (default=1) + required: false + schema: + type: integer + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Video' + + /daily_featured_videos: + get: + tags: + - video + summary: Get today's daily features videos + description: Either 1 or 2 video objects in an array depending on calculated hash + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Video' + + /recently_archived: + get: + tags: + - video + summary: Get the 6 most recently archived videos + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Video' + + /database/video_data/{video_id}: + get: + tags: + - database + summary: Get detailed information about the video if available + description: 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 + parameters: + - name: video_id + in: path + description: YouTube Video ID + required: true + schema: + type: string + responses: + '200': + description: successful operation. + content: + application/json: + schema: + $ref: '#/components/schemas/Video' + + /database/status: + get: + tags: + - database + summary: Get the status of the database + responses: + '200': + description: successful operation. + content: + application/json: + schema: + properties: + OK: + type: string + example: "OK" + '500': + description: database is down + content: + application/json: + schema: + properties: + FAIL: + type: string + example: "500" + + /storage/status: + get: + tags: + - database + summary: Get the status of the database + description: Gets the number of videos archived and space used in GB + responses: + '200': + description: successful operation. + content: + application/json: + schema: + properties: + number_of_files: + type: integer + example: 3823 + storage_size: + type: integer + example: 900 + + +components: + schemas: + Channel: + type: object + required: + - channel_name + properties: + channel_name: + type: string + example: Erina Ch. エリナ・マキナ 【Phase Connect】 + Video: + type: object + required: + - channel_id + - channel_name + - description + - title + - upload_date + - video_id + properties: + channel_id: + type: string + example: UCupmjRr7kPgzXKh-cPxxGbg + channel_name: + type: string + example: Erina Ch. エリナ・マキナ 【Phase Connect】 + description: + type: string + example: The very long description portion + title: + type: string + example: イート / jon-YAKITORY feat.Ado - eat / cover by erina makina + upload_date: + type: string + example: 2022-07-11 + video_id: + type: string + example: bX8-8928lcM
\ No newline at end of file diff --git a/Writerside/c.list b/Writerside/c.list new file mode 100644 index 0000000..c4c77a2 --- /dev/null +++ b/Writerside/c.list @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE categories + SYSTEM "https://resources.jetbrains.com/writerside/1.0/categories.dtd"> +<categories> + <category id="wrs" name="Writerside documentation" order="1"/> +</categories>
\ No newline at end of file diff --git a/Writerside/hi.tree b/Writerside/hi.tree new file mode 100644 index 0000000..70350b6 --- /dev/null +++ b/Writerside/hi.tree @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE instance-profile + SYSTEM "https://resources.jetbrains.com/writerside/1.0/product-profile.dtd"> + +<instance-profile id="hi" + name="Project Knowledge Base" + start-page="Welcome.md"> + <toc-element topic="Welcome.md"/> + <toc-element topic="Patchwork-Archive.md"> + <toc-element topic="Patchwork-API.md"/> + </toc-element> + <toc-element topic="VTuber-Captcha.md"/> +</instance-profile>
\ No newline at end of file diff --git a/Writerside/images/completion_procedure.png b/Writerside/images/completion_procedure.png Binary files differnew file mode 100644 index 0000000..3535a3f --- /dev/null +++ b/Writerside/images/completion_procedure.png diff --git a/Writerside/images/completion_procedure_dark.png b/Writerside/images/completion_procedure_dark.png Binary files differnew file mode 100644 index 0000000..a65beb0 --- /dev/null +++ b/Writerside/images/completion_procedure_dark.png diff --git a/Writerside/images/convert_table_to_xml.png b/Writerside/images/convert_table_to_xml.png Binary files differnew file mode 100644 index 0000000..2518a64 --- /dev/null +++ b/Writerside/images/convert_table_to_xml.png diff --git a/Writerside/images/convert_table_to_xml_dark.png b/Writerside/images/convert_table_to_xml_dark.png Binary files differnew file mode 100644 index 0000000..4716122 --- /dev/null +++ b/Writerside/images/convert_table_to_xml_dark.png diff --git a/Writerside/images/new_topic_options.png b/Writerside/images/new_topic_options.png Binary files differnew file mode 100644 index 0000000..ea9744d --- /dev/null +++ b/Writerside/images/new_topic_options.png diff --git a/Writerside/images/new_topic_options_dark.png b/Writerside/images/new_topic_options_dark.png Binary files differnew file mode 100644 index 0000000..c919638 --- /dev/null +++ b/Writerside/images/new_topic_options_dark.png diff --git a/Writerside/topics/Default-topic.md b/Writerside/topics/Default-topic.md new file mode 100644 index 0000000..dd51468 --- /dev/null +++ b/Writerside/topics/Default-topic.md @@ -0,0 +1,80 @@ +# This is the first topic + +<!--Writerside adds this topic when you create a new documentation project. +You can use it as a sandbox to play with Writerside features, and remove it from the TOC when you don't need it anymore. +If you want to re-add it for your experiments, click + to create a new topic, choose Topic from Template, and select the +"Starter" template.--> + +## Add new topics +You can create empty topics, or choose a template for different types of content that contains some boilerplate structure to help you get started: + +{ width=290 }{border-effect=line} + +## Write content +%product% supports two types of markup: Markdown and XML. +When you create a new help article, you can choose between two topic types, but this doesn't mean you have to stick to a single format. +You can author content in Markdown and extend it with semantic attributes or inject entire XML elements. + +## Inject XML +For example, this is how you inject a procedure: + +<procedure title="Inject a procedure" id="inject-a-procedure"> + <step> + <p>Start typing and select a procedure type from the completion suggestions:</p> + <img src="completion_procedure.png" alt="completion suggestions for procedure" border-effect="line"/> + </step> + <step> + <p>Press <shortcut>Tab</shortcut> or <shortcut>Enter</shortcut> to insert the markup.</p> + </step> +</procedure> + +## Add interactive elements + +### Tabs +To add switchable content, you can make use of tabs (inject them by starting to type `tab` on a new line): + +<tabs> + <tab title="Markdown"> + <code-block lang="plain text">{ width=450 }</code-block> + </tab> + <tab title="Semantic markup"> + <code-block lang="xml"> + <![CDATA[<img src="new_topic_options.png" alt="Alt text" width="450px"/>]]></code-block> + </tab> +</tabs> + +### Collapsible blocks +Apart from injecting entire XML elements, you can use attributes to configure the behavior of certain elements. +For example, you can collapse a chapter that contains non-essential information: + +#### Supplementary info {collapsible="true"} +Content under such header will be collapsed by default, but you can modify the behavior by adding the following attribute: +`default-state="expanded"` + +### Convert selection to XML +If you need to extend an element with more functions, you can convert selected content from Markdown to semantic markup. +For example, if you want to merge cells in a table, it's much easier to convert it to XML than do this in Markdown. +Position the caret anywhere in the table and press <shortcut>Alt+Enter</shortcut>: + +<img src="convert_table_to_xml.png" alt="Convert table to XML" width="706" border-effect="line"/> + +## Feedback and support +Please report any issues, usability improvements, or feature requests to our +<a href="https://youtrack.jetbrains.com/newIssue?project=WRS">YouTrack project</a> +(you will need to register). + +You are welcome to join our +<a href="https://join.slack.com/t/writerside/shared_invite/zt-1hnvxnl0z-Nc6RWXTppRI2Oc566vumYw">public Slack workspace</a>. +Before you do, please read our [Code of conduct](https://plugins.jetbrains.com/plugin/20158-writerside/docs/writerside-code-of-conduct.html). +We assume that you’ve read and acknowledged it before joining. + +You can also always send an email to [writerside@jetbrains.com](mailto:writerside@jetbrains.com). + +<seealso> + <category ref="wrs"> + <a href="https://plugins.jetbrains.com/plugin/20158-writerside/docs/markup-reference.html">Markup reference</a> + <a href="https://plugins.jetbrains.com/plugin/20158-writerside/docs/manage-table-of-contents.html">Reorder topics in the TOC</a> + <a href="https://plugins.jetbrains.com/plugin/20158-writerside/docs/local-build.html">Build and publish</a> + <a href="https://plugins.jetbrains.com/plugin/20158-writerside/docs/configure-search.html">Configure Search</a> + </category> +</seealso> diff --git a/Writerside/topics/Patchwork-API.md b/Writerside/topics/Patchwork-API.md new file mode 100644 index 0000000..165c7db --- /dev/null +++ b/Writerside/topics/Patchwork-API.md @@ -0,0 +1,7 @@ +# 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 +<api-doc openapi-path="../api-docs/patchwork-archive-api.yml" /> + diff --git a/Writerside/topics/Patchwork-Archive.md b/Writerside/topics/Patchwork-Archive.md new file mode 100644 index 0000000..22c0ebb --- /dev/null +++ b/Writerside/topics/Patchwork-Archive.md @@ -0,0 +1,9 @@ +# 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](https://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. + + diff --git a/Writerside/topics/VTuber-Captcha.md b/Writerside/topics/VTuber-Captcha.md new file mode 100644 index 0000000..3129f1c --- /dev/null +++ b/Writerside/topics/VTuber-Captcha.md @@ -0,0 +1,152 @@ +# 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](https://github.com/pinapelz/vtuber-captcha/wiki/Authenticating-Answers-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](https://github.com/pinapelz/vtuber-captcha/wiki/Supported-Terms#organizations) 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)
\ No newline at end of file diff --git a/Writerside/topics/Welcome.md b/Writerside/topics/Welcome.md new file mode 100644 index 0000000..df9139a --- /dev/null +++ b/Writerside/topics/Welcome.md @@ -0,0 +1,6 @@ +# 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.
\ No newline at end of file diff --git a/Writerside/v.list b/Writerside/v.list new file mode 100644 index 0000000..2d12cb3 --- /dev/null +++ b/Writerside/v.list @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE vars SYSTEM "https://resources.jetbrains.com/writerside/1.0/vars.dtd"> +<vars> + <var name="product" value="Writerside"/> +</vars> diff --git a/Writerside/writerside.cfg b/Writerside/writerside.cfg new file mode 100644 index 0000000..5f10ad4 --- /dev/null +++ b/Writerside/writerside.cfg @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE ihp SYSTEM "https://resources.jetbrains.com/writerside/1.0/ihp.dtd"> + +<ihp version="2.0"> + <topics dir="topics" web-path="topics"/> + <images dir="images" web-path="images"/> + <categories src="c.list"/> + <vars src="v.list"/> + <instance src="hi.tree"/> +</ihp>
\ No newline at end of file |
