Initial commit
commit
edb39c871c
13 changed files with 1014 additions and 0 deletions
15
.editorconfig
Normal file
15
.editorconfig
Normal file
|
@ -0,0 +1,15 @@
|
|||
# EditorConfig helps maintain consistent coding styles for multiple developers
|
||||
# working on the same project across various editors and IDEs.
|
||||
#
|
||||
# https://editorconfig.org
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
insert_final_newline = true
|
||||
tab_width = 2
|
||||
trim_trailing_whitespace = true
|
100
.gitattributes
vendored
Normal file
100
.gitattributes
vendored
Normal file
|
@ -0,0 +1,100 @@
|
|||
# Common settings that generally should always be used with your language specific settings
|
||||
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
|
||||
#
|
||||
# The above will handle all files NOT found below
|
||||
#
|
||||
|
||||
# Documents
|
||||
*.bibtex text diff=bibtex
|
||||
*.doc diff=astextplain
|
||||
*.DOC diff=astextplain
|
||||
*.docx diff=astextplain
|
||||
*.DOCX diff=astextplain
|
||||
*.dot diff=astextplain
|
||||
*.DOT diff=astextplain
|
||||
*.pdf diff=astextplain
|
||||
*.PDF diff=astextplain
|
||||
*.rtf diff=astextplain
|
||||
*.RTF diff=astextplain
|
||||
*.md text diff=markdown
|
||||
*.mdx text diff=markdown
|
||||
*.tex text diff=tex
|
||||
*.adoc text
|
||||
*.textile text
|
||||
*.mustache text
|
||||
*.csv text eol=crlf
|
||||
*.tab text
|
||||
*.tsv text
|
||||
*.txt text
|
||||
*.sql text
|
||||
*.epub diff=astextplain
|
||||
|
||||
# Graphics
|
||||
*.avif binary
|
||||
*.gif binary
|
||||
*.ico binary
|
||||
*.jpeg binary
|
||||
*.jpg binary
|
||||
*.jxl binary
|
||||
*.png binary
|
||||
*.tif binary
|
||||
*.tiff binary
|
||||
# SVG treated as text by default.
|
||||
*.svg text
|
||||
# If you want to treat it as binary,
|
||||
# use the following line instead.
|
||||
# *.svg binary
|
||||
*.eps binary
|
||||
|
||||
# Scripts
|
||||
*.bash text eol=lf
|
||||
*.fish text eol=lf
|
||||
*.ksh text eol=lf
|
||||
*.sh text eol=lf
|
||||
*.zsh text eol=lf
|
||||
# These are explicitly windows files and should use crlf
|
||||
*.bat text eol=crlf
|
||||
*.cmd text eol=crlf
|
||||
*.ps1 text eol=crlf
|
||||
|
||||
# Serialisation
|
||||
*.json text
|
||||
*.toml text
|
||||
*.xml text
|
||||
*.yaml text
|
||||
*.yml text
|
||||
|
||||
# Archives
|
||||
*.7z binary
|
||||
*.bz binary
|
||||
*.bz2 binary
|
||||
*.bzip2 binary
|
||||
*.gz binary
|
||||
*.lz binary
|
||||
*.lzma binary
|
||||
*.rar binary
|
||||
*.tar binary
|
||||
*.taz binary
|
||||
*.tbz binary
|
||||
*.tbz2 binary
|
||||
*.tgz binary
|
||||
*.tlz binary
|
||||
*.txz binary
|
||||
*.xz binary
|
||||
*.Z binary
|
||||
*.zip binary
|
||||
*.zst binary
|
||||
|
||||
# Text files where line endings should be preserved
|
||||
*.patch -text
|
||||
|
||||
#
|
||||
# Exclude files from exporting
|
||||
#
|
||||
|
||||
.gitattributes export-ignore
|
||||
.gitignore export-ignore
|
||||
.gitkeep export-ignore
|
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
.DS_Store
|
||||
.idea
|
||||
*.log
|
||||
tmp/
|
31
Home.md
Normal file
31
Home.md
Normal file
|
@ -0,0 +1,31 @@
|
|||
# Vimm DL Wiki
|
||||
|
||||
Welcome, stranger! You have stumbled upon the official
|
||||
[Vimm DL Wiki](https://code.fosterhangdaan.com/foster/vimm-dl/wiki).
|
||||
|
||||
## What is Vimm DL?
|
||||
|
||||
Vimm DL is command-line tool for automating game downloads from
|
||||
[[https://vimm.net]].
|
||||
|
||||
The repository is hosted online at
|
||||
[[https://code.fosterhangdaan.com/foster/vimm-dl]].
|
||||
|
||||
## Getting started
|
||||
|
||||
To quickly get started using Vimm DL, check out the [Installation](installation)
|
||||
and [Usage](usage) pages.
|
||||
|
||||
## FAQ
|
||||
|
||||
Refer to the [FAQ](faq) page for answers to frequently asked questions.
|
||||
|
||||
## Developing
|
||||
|
||||
Check out the [Developing](developing) page on how to setup development
|
||||
environment and development workflow.
|
||||
|
||||
## Contributing
|
||||
|
||||
The [Contributing](contributing) page lists the different ways one can
|
||||
contribute to Vimm DL project development.
|
445
LICENSE.md
Normal file
445
LICENSE.md
Normal file
|
@ -0,0 +1,445 @@
|
|||
# GNU Free Documentation License
|
||||
|
||||
Version 1.3, 3 November 2008
|
||||
|
||||
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation,
|
||||
Inc. <https://fsf.org/>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this
|
||||
license document, but changing it is not allowed.
|
||||
|
||||
## 0. PREAMBLE
|
||||
|
||||
The purpose of this License is to make a manual, textbook, or other
|
||||
functional and useful document "free" in the sense of freedom: to
|
||||
assure everyone the effective freedom to copy and redistribute it,
|
||||
with or without modifying it, either commercially or noncommercially.
|
||||
Secondarily, this License preserves for the author and publisher a way
|
||||
to get credit for their work, while not being considered responsible
|
||||
for modifications made by others.
|
||||
|
||||
This License is a kind of "copyleft", which means that derivative
|
||||
works of the document must themselves be free in the same sense. It
|
||||
complements the GNU General Public License, which is a copyleft
|
||||
license designed for free software.
|
||||
|
||||
We have designed this License in order to use it for manuals for free
|
||||
software, because free software needs free documentation: a free
|
||||
program should come with manuals providing the same freedoms that the
|
||||
software does. But this License is not limited to software manuals; it
|
||||
can be used for any textual work, regardless of subject matter or
|
||||
whether it is published as a printed book. We recommend this License
|
||||
principally for works whose purpose is instruction or reference.
|
||||
|
||||
## 1. APPLICABILITY AND DEFINITIONS
|
||||
|
||||
This License applies to any manual or other work, in any medium, that
|
||||
contains a notice placed by the copyright holder saying it can be
|
||||
distributed under the terms of this License. Such a notice grants a
|
||||
world-wide, royalty-free license, unlimited in duration, to use that
|
||||
work under the conditions stated herein. The "Document", below, refers
|
||||
to any such manual or work. Any member of the public is a licensee,
|
||||
and is addressed as "you". You accept the license if you copy, modify
|
||||
or distribute the work in a way requiring permission under copyright
|
||||
law.
|
||||
|
||||
A "Modified Version" of the Document means any work containing the
|
||||
Document or a portion of it, either copied verbatim, or with
|
||||
modifications and/or translated into another language.
|
||||
|
||||
A "Secondary Section" is a named appendix or a front-matter section of
|
||||
the Document that deals exclusively with the relationship of the
|
||||
publishers or authors of the Document to the Document's overall
|
||||
subject (or to related matters) and contains nothing that could fall
|
||||
directly within that overall subject. (Thus, if the Document is in
|
||||
part a textbook of mathematics, a Secondary Section may not explain
|
||||
any mathematics.) The relationship could be a matter of historical
|
||||
connection with the subject or with related matters, or of legal,
|
||||
commercial, philosophical, ethical or political position regarding
|
||||
them.
|
||||
|
||||
The "Invariant Sections" are certain Secondary Sections whose titles
|
||||
are designated, as being those of Invariant Sections, in the notice
|
||||
that says that the Document is released under this License. If a
|
||||
section does not fit the above definition of Secondary then it is not
|
||||
allowed to be designated as Invariant. The Document may contain zero
|
||||
Invariant Sections. If the Document does not identify any Invariant
|
||||
Sections then there are none.
|
||||
|
||||
The "Cover Texts" are certain short passages of text that are listed,
|
||||
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
||||
the Document is released under this License. A Front-Cover Text may be
|
||||
at most 5 words, and a Back-Cover Text may be at most 25 words.
|
||||
|
||||
A "Transparent" copy of the Document means a machine-readable copy,
|
||||
represented in a format whose specification is available to the
|
||||
general public, that is suitable for revising the document
|
||||
straightforwardly with generic text editors or (for images composed of
|
||||
pixels) generic paint programs or (for drawings) some widely available
|
||||
drawing editor, and that is suitable for input to text formatters or
|
||||
for automatic translation to a variety of formats suitable for input
|
||||
to text formatters. A copy made in an otherwise Transparent file
|
||||
format whose markup, or absence of markup, has been arranged to thwart
|
||||
or discourage subsequent modification by readers is not Transparent.
|
||||
An image format is not Transparent if used for any substantial amount
|
||||
of text. A copy that is not "Transparent" is called "Opaque".
|
||||
|
||||
Examples of suitable formats for Transparent copies include plain
|
||||
ASCII without markup, Texinfo input format, LaTeX input format, SGML
|
||||
or XML using a publicly available DTD, and standard-conforming simple
|
||||
HTML, PostScript or PDF designed for human modification. Examples of
|
||||
transparent image formats include PNG, XCF and JPG. Opaque formats
|
||||
include proprietary formats that can be read and edited only by
|
||||
proprietary word processors, SGML or XML for which the DTD and/or
|
||||
processing tools are not generally available, and the
|
||||
machine-generated HTML, PostScript or PDF produced by some word
|
||||
processors for output purposes only.
|
||||
|
||||
The "Title Page" means, for a printed book, the title page itself,
|
||||
plus such following pages as are needed to hold, legibly, the material
|
||||
this License requires to appear in the title page. For works in
|
||||
formats which do not have any title page as such, "Title Page" means
|
||||
the text near the most prominent appearance of the work's title,
|
||||
preceding the beginning of the body of the text.
|
||||
|
||||
The "publisher" means any person or entity that distributes copies of
|
||||
the Document to the public.
|
||||
|
||||
A section "Entitled XYZ" means a named subunit of the Document whose
|
||||
title either is precisely XYZ or contains XYZ in parentheses following
|
||||
text that translates XYZ in another language. (Here XYZ stands for a
|
||||
specific section name mentioned below, such as "Acknowledgements",
|
||||
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
|
||||
of such a section when you modify the Document means that it remains a
|
||||
section "Entitled XYZ" according to this definition.
|
||||
|
||||
The Document may include Warranty Disclaimers next to the notice which
|
||||
states that this License applies to the Document. These Warranty
|
||||
Disclaimers are considered to be included by reference in this
|
||||
License, but only as regards disclaiming warranties: any other
|
||||
implication that these Warranty Disclaimers may have is void and has
|
||||
no effect on the meaning of this License.
|
||||
|
||||
## 2. VERBATIM COPYING
|
||||
|
||||
You may copy and distribute the Document in any medium, either
|
||||
commercially or noncommercially, provided that this License, the
|
||||
copyright notices, and the license notice saying this License applies
|
||||
to the Document are reproduced in all copies, and that you add no
|
||||
other conditions whatsoever to those of this License. You may not use
|
||||
technical measures to obstruct or control the reading or further
|
||||
copying of the copies you make or distribute. However, you may accept
|
||||
compensation in exchange for copies. If you distribute a large enough
|
||||
number of copies you must also follow the conditions in section 3.
|
||||
|
||||
You may also lend copies, under the same conditions stated above, and
|
||||
you may publicly display copies.
|
||||
|
||||
## 3. COPYING IN QUANTITY
|
||||
|
||||
If you publish printed copies (or copies in media that commonly have
|
||||
printed covers) of the Document, numbering more than 100, and the
|
||||
Document's license notice requires Cover Texts, you must enclose the
|
||||
copies in covers that carry, clearly and legibly, all these Cover
|
||||
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
||||
the back cover. Both covers must also clearly and legibly identify you
|
||||
as the publisher of these copies. The front cover must present the
|
||||
full title with all words of the title equally prominent and visible.
|
||||
You may add other material on the covers in addition. Copying with
|
||||
changes limited to the covers, as long as they preserve the title of
|
||||
the Document and satisfy these conditions, can be treated as verbatim
|
||||
copying in other respects.
|
||||
|
||||
If the required texts for either cover are too voluminous to fit
|
||||
legibly, you should put the first ones listed (as many as fit
|
||||
reasonably) on the actual cover, and continue the rest onto adjacent
|
||||
pages.
|
||||
|
||||
If you publish or distribute Opaque copies of the Document numbering
|
||||
more than 100, you must either include a machine-readable Transparent
|
||||
copy along with each Opaque copy, or state in or with each Opaque copy
|
||||
a computer-network location from which the general network-using
|
||||
public has access to download using public-standard network protocols
|
||||
a complete Transparent copy of the Document, free of added material.
|
||||
If you use the latter option, you must take reasonably prudent steps,
|
||||
when you begin distribution of Opaque copies in quantity, to ensure
|
||||
that this Transparent copy will remain thus accessible at the stated
|
||||
location until at least one year after the last time you distribute an
|
||||
Opaque copy (directly or through your agents or retailers) of that
|
||||
edition to the public.
|
||||
|
||||
It is requested, but not required, that you contact the authors of the
|
||||
Document well before redistributing any large number of copies, to
|
||||
give them a chance to provide you with an updated version of the
|
||||
Document.
|
||||
|
||||
## 4. MODIFICATIONS
|
||||
|
||||
You may copy and distribute a Modified Version of the Document under
|
||||
the conditions of sections 2 and 3 above, provided that you release
|
||||
the Modified Version under precisely this License, with the Modified
|
||||
Version filling the role of the Document, thus licensing distribution
|
||||
and modification of the Modified Version to whoever possesses a copy
|
||||
of it. In addition, you must do these things in the Modified Version:
|
||||
|
||||
- A. Use in the Title Page (and on the covers, if any) a title
|
||||
distinct from that of the Document, and from those of previous
|
||||
versions (which should, if there were any, be listed in the
|
||||
History section of the Document). You may use the same title as a
|
||||
previous version if the original publisher of that version
|
||||
gives permission.
|
||||
- B. List on the Title Page, as authors, one or more persons or
|
||||
entities responsible for authorship of the modifications in the
|
||||
Modified Version, together with at least five of the principal
|
||||
authors of the Document (all of its principal authors, if it has
|
||||
fewer than five), unless they release you from this requirement.
|
||||
- C. State on the Title page the name of the publisher of the
|
||||
Modified Version, as the publisher.
|
||||
- D. Preserve all the copyright notices of the Document.
|
||||
- E. Add an appropriate copyright notice for your modifications
|
||||
adjacent to the other copyright notices.
|
||||
- F. Include, immediately after the copyright notices, a license
|
||||
notice giving the public permission to use the Modified Version
|
||||
under the terms of this License, in the form shown in the
|
||||
Addendum below.
|
||||
- G. Preserve in that license notice the full lists of Invariant
|
||||
Sections and required Cover Texts given in the Document's
|
||||
license notice.
|
||||
- H. Include an unaltered copy of this License.
|
||||
- I. Preserve the section Entitled "History", Preserve its Title,
|
||||
and add to it an item stating at least the title, year, new
|
||||
authors, and publisher of the Modified Version as given on the
|
||||
Title Page. If there is no section Entitled "History" in the
|
||||
Document, create one stating the title, year, authors, and
|
||||
publisher of the Document as given on its Title Page, then add an
|
||||
item describing the Modified Version as stated in the
|
||||
previous sentence.
|
||||
- J. Preserve the network location, if any, given in the Document
|
||||
for public access to a Transparent copy of the Document, and
|
||||
likewise the network locations given in the Document for previous
|
||||
versions it was based on. These may be placed in the "History"
|
||||
section. You may omit a network location for a work that was
|
||||
published at least four years before the Document itself, or if
|
||||
the original publisher of the version it refers to
|
||||
gives permission.
|
||||
- K. For any section Entitled "Acknowledgements" or "Dedications",
|
||||
Preserve the Title of the section, and preserve in the section all
|
||||
the substance and tone of each of the contributor acknowledgements
|
||||
and/or dedications given therein.
|
||||
- L. Preserve all the Invariant Sections of the Document, unaltered
|
||||
in their text and in their titles. Section numbers or the
|
||||
equivalent are not considered part of the section titles.
|
||||
- M. Delete any section Entitled "Endorsements". Such a section may
|
||||
not be included in the Modified Version.
|
||||
- N. Do not retitle any existing section to be Entitled
|
||||
"Endorsements" or to conflict in title with any Invariant Section.
|
||||
- O. Preserve any Warranty Disclaimers.
|
||||
|
||||
If the Modified Version includes new front-matter sections or
|
||||
appendices that qualify as Secondary Sections and contain no material
|
||||
copied from the Document, you may at your option designate some or all
|
||||
of these sections as invariant. To do this, add their titles to the
|
||||
list of Invariant Sections in the Modified Version's license notice.
|
||||
These titles must be distinct from any other section titles.
|
||||
|
||||
You may add a section Entitled "Endorsements", provided it contains
|
||||
nothing but endorsements of your Modified Version by various
|
||||
parties—for example, statements of peer review or that the text has
|
||||
been approved by an organization as the authoritative definition of a
|
||||
standard.
|
||||
|
||||
You may add a passage of up to five words as a Front-Cover Text, and a
|
||||
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
||||
of Cover Texts in the Modified Version. Only one passage of
|
||||
Front-Cover Text and one of Back-Cover Text may be added by (or
|
||||
through arrangements made by) any one entity. If the Document already
|
||||
includes a cover text for the same cover, previously added by you or
|
||||
by arrangement made by the same entity you are acting on behalf of,
|
||||
you may not add another; but you may replace the old one, on explicit
|
||||
permission from the previous publisher that added the old one.
|
||||
|
||||
The author(s) and publisher(s) of the Document do not by this License
|
||||
give permission to use their names for publicity for or to assert or
|
||||
imply endorsement of any Modified Version.
|
||||
|
||||
## 5. COMBINING DOCUMENTS
|
||||
|
||||
You may combine the Document with other documents released under this
|
||||
License, under the terms defined in section 4 above for modified
|
||||
versions, provided that you include in the combination all of the
|
||||
Invariant Sections of all of the original documents, unmodified, and
|
||||
list them all as Invariant Sections of your combined work in its
|
||||
license notice, and that you preserve all their Warranty Disclaimers.
|
||||
|
||||
The combined work need only contain one copy of this License, and
|
||||
multiple identical Invariant Sections may be replaced with a single
|
||||
copy. If there are multiple Invariant Sections with the same name but
|
||||
different contents, make the title of each such section unique by
|
||||
adding at the end of it, in parentheses, the name of the original
|
||||
author or publisher of that section if known, or else a unique number.
|
||||
Make the same adjustment to the section titles in the list of
|
||||
Invariant Sections in the license notice of the combined work.
|
||||
|
||||
In the combination, you must combine any sections Entitled "History"
|
||||
in the various original documents, forming one section Entitled
|
||||
"History"; likewise combine any sections Entitled "Acknowledgements",
|
||||
and any sections Entitled "Dedications". You must delete all sections
|
||||
Entitled "Endorsements".
|
||||
|
||||
## 6. COLLECTIONS OF DOCUMENTS
|
||||
|
||||
You may make a collection consisting of the Document and other
|
||||
documents released under this License, and replace the individual
|
||||
copies of this License in the various documents with a single copy
|
||||
that is included in the collection, provided that you follow the rules
|
||||
of this License for verbatim copying of each of the documents in all
|
||||
other respects.
|
||||
|
||||
You may extract a single document from such a collection, and
|
||||
distribute it individually under this License, provided you insert a
|
||||
copy of this License into the extracted document, and follow this
|
||||
License in all other respects regarding verbatim copying of that
|
||||
document.
|
||||
|
||||
## 7. AGGREGATION WITH INDEPENDENT WORKS
|
||||
|
||||
A compilation of the Document or its derivatives with other separate
|
||||
and independent documents or works, in or on a volume of a storage or
|
||||
distribution medium, is called an "aggregate" if the copyright
|
||||
resulting from the compilation is not used to limit the legal rights
|
||||
of the compilation's users beyond what the individual works permit.
|
||||
When the Document is included in an aggregate, this License does not
|
||||
apply to the other works in the aggregate which are not themselves
|
||||
derivative works of the Document.
|
||||
|
||||
If the Cover Text requirement of section 3 is applicable to these
|
||||
copies of the Document, then if the Document is less than one half of
|
||||
the entire aggregate, the Document's Cover Texts may be placed on
|
||||
covers that bracket the Document within the aggregate, or the
|
||||
electronic equivalent of covers if the Document is in electronic form.
|
||||
Otherwise they must appear on printed covers that bracket the whole
|
||||
aggregate.
|
||||
|
||||
## 8. TRANSLATION
|
||||
|
||||
Translation is considered a kind of modification, so you may
|
||||
distribute translations of the Document under the terms of section 4.
|
||||
Replacing Invariant Sections with translations requires special
|
||||
permission from their copyright holders, but you may include
|
||||
translations of some or all Invariant Sections in addition to the
|
||||
original versions of these Invariant Sections. You may include a
|
||||
translation of this License, and all the license notices in the
|
||||
Document, and any Warranty Disclaimers, provided that you also include
|
||||
the original English version of this License and the original versions
|
||||
of those notices and disclaimers. In case of a disagreement between
|
||||
the translation and the original version of this License or a notice
|
||||
or disclaimer, the original version will prevail.
|
||||
|
||||
If a section in the Document is Entitled "Acknowledgements",
|
||||
"Dedications", or "History", the requirement (section 4) to Preserve
|
||||
its Title (section 1) will typically require changing the actual
|
||||
title.
|
||||
|
||||
## 9. TERMINATION
|
||||
|
||||
You may not copy, modify, sublicense, or distribute the Document
|
||||
except as expressly provided under this License. Any attempt otherwise
|
||||
to copy, modify, sublicense, or distribute it is void, and will
|
||||
automatically terminate your rights under this License.
|
||||
|
||||
However, if you cease all violation of this License, then your license
|
||||
from a particular copyright holder is reinstated (a) provisionally,
|
||||
unless and until the copyright holder explicitly and finally
|
||||
terminates your license, and (b) permanently, if the copyright holder
|
||||
fails to notify you of the violation by some reasonable means prior to
|
||||
60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, receipt of a copy of some or all of the same material does
|
||||
not give you any rights to use it.
|
||||
|
||||
## 10. FUTURE REVISIONS OF THIS LICENSE
|
||||
|
||||
The Free Software Foundation may publish new, revised versions of the
|
||||
GNU Free Documentation License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in
|
||||
detail to address new problems or concerns. See
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
Each version of the License is given a distinguishing version number.
|
||||
If the Document specifies that a particular numbered version of this
|
||||
License "or any later version" applies to it, you have the option of
|
||||
following the terms and conditions either of that specified version or
|
||||
of any later version that has been published (not as a draft) by the
|
||||
Free Software Foundation. If the Document does not specify a version
|
||||
number of this License, you may choose any version ever published (not
|
||||
as a draft) by the Free Software Foundation. If the Document specifies
|
||||
that a proxy can decide which future versions of this License can be
|
||||
used, that proxy's public statement of acceptance of a version
|
||||
permanently authorizes you to choose that version for the Document.
|
||||
|
||||
## 11. RELICENSING
|
||||
|
||||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server. A
|
||||
"Massive Multiauthor Collaboration" (or "MMC") contained in the site
|
||||
means any set of copyrightable works thus published on the MMC site.
|
||||
|
||||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
|
||||
"Incorporate" means to publish or republish a Document, in whole or in
|
||||
part, as part of another Document.
|
||||
|
||||
An MMC is "eligible for relicensing" if it is licensed under this
|
||||
License, and if all works that were first published under this License
|
||||
somewhere other than this MMC, and subsequently incorporated in whole
|
||||
or in part into the MMC, (1) had no cover texts or invariant sections,
|
||||
and (2) were thus incorporated prior to November 1, 2008.
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the site
|
||||
under CC-BY-SA on the same site at any time before August 1, 2009,
|
||||
provided the MMC is eligible for relicensing.
|
||||
|
||||
## ADDENDUM: How to use this License for your documents
|
||||
|
||||
To use this License in a document you have written, include a copy of
|
||||
the License in the document and put the following copyright and
|
||||
license notices just after the title page:
|
||||
|
||||
Copyright (C) YEAR YOUR NAME.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
If you have Invariant Sections, Front-Cover Texts and Back-Cover
|
||||
Texts, replace the "with … Texts." line with this:
|
||||
|
||||
with the Invariant Sections being LIST THEIR TITLES, with the
|
||||
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
||||
|
||||
If you have Invariant Sections without Cover Texts, or some other
|
||||
combination of the three, merge those two alternatives to suit the
|
||||
situation.
|
||||
|
||||
If your document contains nontrivial examples of program code, we
|
||||
recommend releasing these examples in parallel under your choice of
|
||||
free software license, such as the GNU General Public License, to
|
||||
permit their use in free software.
|
7
_Footer.md
Normal file
7
_Footer.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
Copyright © 2024 [Foster Hangdaan](mailto:foster@hangdaan.email)
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document under the
|
||||
terms of the GNU Free Documentation License, Version 1.3 or any later version
|
||||
published by the Free Software Foundation; with no Invariant Sections, no
|
||||
Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in
|
||||
the page entitled [GNU Free Documentation License](LICENSE).
|
104
compiling.md
Normal file
104
compiling.md
Normal file
|
@ -0,0 +1,104 @@
|
|||
# Compiling from Source
|
||||
|
||||
This document provides instructions on how to compile the `vimm-dl` binary from
|
||||
the official source code.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Compiling the binary requires a copy of the source code and the following
|
||||
programs installed:
|
||||
|
||||
- [Deno](https://deno.com/)
|
||||
- [Git](https://git-scm.com/)
|
||||
|
||||
### 1. Install Git
|
||||
|
||||
The latest version of Git can be obtained from the
|
||||
[official downloads page](https://git-scm.com/downloads).
|
||||
|
||||
### 2. Install Deno
|
||||
|
||||
Follow the
|
||||
[official installation instructions](https://docs.deno.com/runtime/manual/getting_started/installation)
|
||||
to get the latest Deno binary installed on your system.
|
||||
|
||||
### 3. Get the source code
|
||||
|
||||
Get the latest version of the source code by cloning the repository:
|
||||
|
||||
```sh
|
||||
git clone https://code.fosterhangdaan.com/foster/vimm-dl.git
|
||||
```
|
||||
|
||||
Or clone a specific version:
|
||||
|
||||
```sh
|
||||
git clone --depth 1 --branch v0.1.0 https://code.fosterhangdaan.com/foster/vimm-dl.git
|
||||
```
|
||||
|
||||
Executing either of the above commands creates a copy of the repository in a
|
||||
folder called `vimm-dl`.
|
||||
|
||||
## Compiling
|
||||
|
||||
Compilation of the `vimm-dl` binary is done using the `deno compile` command.
|
||||
You can either use the `deno compile` command directly or use one of the
|
||||
ready-made tasks.
|
||||
|
||||
Before starting, you should have navigated to the directory of the cloned
|
||||
repository:
|
||||
|
||||
```sh
|
||||
cd vimm-dl
|
||||
```
|
||||
|
||||
### Using the Predefined Tasks
|
||||
|
||||
A **task** is a shortcut for executing a predefined command or script. The
|
||||
repository defines several tasks for compiling the binary. These tasks supply a
|
||||
fixed set of options to `deno compile`. For example, there is a task to compile
|
||||
a binary for Linux on the `amd64` architecture:
|
||||
|
||||
```sh
|
||||
deno task compile:x86_64-linux
|
||||
```
|
||||
|
||||
The compiled binary will then be stored in the
|
||||
`target/x86_64-unknown-linux-gnu/` directory.
|
||||
|
||||
Refer to the `tasks` object in `deno.json` to get a list of all the available
|
||||
`compile` tasks.
|
||||
|
||||
### Using Custom Options
|
||||
|
||||
You can supply your own set of options by using the `deno compile` command
|
||||
directly. This is useful for creating a variant of the binary that matches your
|
||||
needs.
|
||||
|
||||
Use `deno compile --help` to display a complete list of options.
|
||||
|
||||
#### Disabling the Sandbox
|
||||
|
||||
> **WARNING:** Vimm DL protects you from unforeseen vulnerabilities in the code
|
||||
> by running in an isolated environment (a sandbox). Allowing all permissions is
|
||||
> not recommended.
|
||||
|
||||
You can generate a variant of `vimm-dl` with the sandbox disabled by supplying
|
||||
the `-A` option to `deno compile`. This grants all permissions to the `vimm-dl`
|
||||
binary, and disables all permission prompts and warnings. This makes `vimm-dl`
|
||||
behave more like a typical shell command. This can be useful when running
|
||||
`vimm-dl` in a non-interactive environment, such as an automation script or a
|
||||
Cron job.
|
||||
|
||||
The following example compiles an unsandboxed binary for Linux on the `amd64`
|
||||
architecture which is saved in the `target/x86_64-unknown-linux-gnu/` directory:
|
||||
|
||||
```sh
|
||||
deno compile -A --target x86_64-unknown-linux-gnu --output target/x86_64-unknown-linux-gnu/vimm-dl main.ts
|
||||
```
|
||||
|
||||
Similar to the command above but targets a Windows system:
|
||||
|
||||
```sh
|
||||
deno compile -A --target x86_64-pc-windows-msvc --output target/x86_64-pc-windows-msvc/vimm-dl main.ts
|
||||
```
|
56
contributing.md
Normal file
56
contributing.md
Normal file
|
@ -0,0 +1,56 @@
|
|||
# Contributing
|
||||
|
||||
> **NOTE:** The [Forgejo instance](https://code.fosterhangdaan.com/) which hosts
|
||||
> the Vimm DL code is currently closed to account registrations. Due to this,
|
||||
> external contributors cannot access the issue board or make pull requests.
|
||||
> Most contributions must be submitted via email to one of the core maintainers.
|
||||
>
|
||||
> It is planned to open-up access to external contributors once Forgejo
|
||||
> [implements federation](https://codeberg.org/forgejo/forgejo/issues/59).
|
||||
|
||||
There are multiple ways of contributing to the development of Vimm DL.
|
||||
|
||||
## Submitting Patches
|
||||
|
||||
In lieu of pull requests, code contributions and patches must be emailed to one
|
||||
of the [core maintainers](maintainers). Refer to
|
||||
[this guide](https://git-send-email.io) if you are not familiar with sending Git
|
||||
patches over email.
|
||||
|
||||
## Updating Wiki Information
|
||||
|
||||
The official wiki is version-controlled with Git. Therefore, it follows the same
|
||||
method for submitting contributions as
|
||||
[Submitting Patches](contributing#submitting-patches).
|
||||
|
||||
The wiki can be cloned from the following URL:
|
||||
|
||||
```text
|
||||
https://code.fosterhangdaan.com/foster/vimm-dl.wiki.git
|
||||
```
|
||||
|
||||
## Reporting Bugs
|
||||
|
||||
Bug reports can be emailed to one of the [core maintainers](maintainers). At a
|
||||
minimum, the report should include the following:
|
||||
|
||||
- A succinct description of the bug.
|
||||
- Steps to reproduce.
|
||||
- Any screenshots or logs.
|
||||
|
||||
The bug report will be included on the
|
||||
[Forgejo issue board](https://code.fosterhangdaan.com/foster/vimm-dl/issues)
|
||||
once it passes review.
|
||||
|
||||
## Requesting Features
|
||||
|
||||
Feature requests can be emailed to one of the [core maintainers](maintainers).
|
||||
At a minimum, a feature request should include the following:
|
||||
|
||||
- A succinct description of the feature.
|
||||
- Needs and benefits.
|
||||
- Screenshots or examples to better illustrate the requested feature.
|
||||
|
||||
The feature request will appear on the
|
||||
[Forgejo issue board](https://code.fosterhangdaan.com/foster/vimm-dl/issues)
|
||||
once it passes review.
|
68
developing.md
Normal file
68
developing.md
Normal file
|
@ -0,0 +1,68 @@
|
|||
# Developing
|
||||
|
||||
This document describes how to get started with Vimm DL development.
|
||||
|
||||
## Conventions
|
||||
|
||||
The Vimm DL project adheres to the following conventions and specifications:
|
||||
|
||||
### Semantic Versioning
|
||||
|
||||
All releases are versioned following
|
||||
[Semantic Versioning v2.0.0](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### Git Commit Messages
|
||||
|
||||
The structure of Git commit messages follows
|
||||
[Conventional Commits v1.0.0](https://www.conventionalcommits.org/en/v1.0.0/).
|
||||
|
||||
## Development
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Ensure that you have the following tools installed:
|
||||
|
||||
- [Git](https://git-scm.com/)
|
||||
- [Deno](https://deno.com/)
|
||||
|
||||
### Workflow
|
||||
|
||||
The current development workflow uses a 3-step loop:
|
||||
|
||||
#### 1. Make changes
|
||||
|
||||
Make your edits to the source code.
|
||||
|
||||
All of the source code is located in `src` folder. The only exception is
|
||||
`main.ts` which is located in the root directory of the project.
|
||||
|
||||
#### 2. Compile
|
||||
|
||||
Once you have made your changes, compile the the binary for a specific platform.
|
||||
For example, for a Linux system on the `amd64` architecture:
|
||||
|
||||
```sh
|
||||
deno task compile:x86_64-linux
|
||||
```
|
||||
|
||||
The compiled binary will be stored in `target/x86_64-unknown-linux-gnu`.
|
||||
|
||||
> Check the [Compiling from Source](compiling) page for more details, such as
|
||||
> how to compile for other platforms.
|
||||
|
||||
#### 3. Test
|
||||
|
||||
Test your changes by running the binary:
|
||||
|
||||
```sh
|
||||
target/x86_64-unknown-linux-gnu/vimm-dl https://vimm.net/vault/5953 --destination ~/Downloads
|
||||
```
|
||||
|
||||
Use a variety of options to ensure that the new changes work across different
|
||||
situations. If your tests fail, then go back to step 1.
|
||||
|
||||
#### 4. Submit a patch
|
||||
|
||||
Once you happy with your changes,
|
||||
[submit a patch](contributing#submitting-patches) in order to have your changes
|
||||
incorporated into the main Vimm DL project.
|
29
faq.md
Normal file
29
faq.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
# FAQ
|
||||
|
||||
Answers to frequently asked questions.
|
||||
|
||||
## What makes Vimm DL secure?
|
||||
|
||||
The `vimm-dl` command runs in an isolated environment by utilizing
|
||||
[Deno](https://deno.com/)'s sandboxing capability. By default, `vimm-dl` does
|
||||
not have access to any system resource with the exception of network access to
|
||||
[[https://vimm.net]]. `vimm-dl` will prompt the user for permission anytime it
|
||||
attempts to access a resource.
|
||||
|
||||
See the
|
||||
[How do I disable the sandbox environment?](how-do-i-disable-the-sandbox-environment)
|
||||
section of this page if you would like to obtain an unsandboxed variant of Vimm
|
||||
DL.
|
||||
|
||||
## Why doesn't Vimm DL download games concurrently to speed it up?
|
||||
|
||||
To reduce server load, Vimm restricts downloads to one per session per IP
|
||||
address. Vimm DL respects that rule. Therefore, downloads are performed in
|
||||
sequence and not in parallel.
|
||||
|
||||
## How do I disable the sandbox environment?
|
||||
|
||||
You must manually compile from source to generate a variant of the binary with
|
||||
the sandbox disabled. To do that, follow the instructions in the
|
||||
[Disabling the Sandbox](compiling#disabling-the-sandbox) section of the
|
||||
[Compiling from Source](compiling) page.
|
35
installation.md
Normal file
35
installation.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
# Installation
|
||||
|
||||
The document contains instructions for installing the `vimm-dl` binary.
|
||||
|
||||
## 1. Download the latest binary for your platform and architecture.
|
||||
|
||||
All precompiled binaries for Linux, Mac and Windows are available at the
|
||||
[Releases](https://code.fosterhangdaan.com/foster/vimm-dl/releases) page.
|
||||
|
||||
## 2. (Optional) Verify GPG signature
|
||||
|
||||
It is recommended verify the binaries using a maintainer's GPG pubkey. This
|
||||
ensures that you are using an official binary and not one made by a third-party.
|
||||
|
||||
Releases are signed with GPG key.
|
||||
|
||||
## 3. Install the binary
|
||||
|
||||
Place the binary inside one of the directories listed in `PATH`. On Linux, this
|
||||
is usually `/usr/local/bin` or `~/.local/bin`.
|
||||
|
||||
## 4. Test the installation
|
||||
|
||||
You can easily test the installation by checking the version:
|
||||
|
||||
```sh
|
||||
vimm-dl --version
|
||||
```
|
||||
|
||||
An output showing the version number indicates that `vimm-dl` is properly
|
||||
installed:
|
||||
|
||||
```text
|
||||
vimm-dl 0.1.0
|
||||
```
|
11
maintainers.md
Normal file
11
maintainers.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Core Maintainers
|
||||
|
||||
An up-to-date list of Vimm DL core maintainers.
|
||||
|
||||
- **Foster Hangdaan**
|
||||
- Role: Principal Developer
|
||||
- Website: [www.fosterhangdaan.com](https://www.fosterhangdaan.com)
|
||||
- Email: [foster@hangdaan.email](mailto:foster@hangdaan.email)
|
||||
- GPG Public Key:
|
||||
[DBD3 8E38 4B9E 1F4F 19F9 5BAE E48D 7F49 A852 F112](https://static.fosterhangdaan.com/foster-pubkey.asc)
|
||||
- Donations: [[https://pay.fosterhangdaan.com]]
|
109
usage.md
Normal file
109
usage.md
Normal file
|
@ -0,0 +1,109 @@
|
|||
# Usage
|
||||
|
||||
This document contains instructions and examples for using the `vimm-dl`
|
||||
command.
|
||||
|
||||
## Secure by Default
|
||||
|
||||
Before starting, it is important to note that `vimm-dl` uses the
|
||||
[Deno](https://deno.com/) runtime and is secure by default. In other words,
|
||||
`vimm-dl` is sandboxed and cannot access your system without your permission.
|
||||
This design is intentional and helps protect you from any unforeseen
|
||||
vulnerabilities within the code.
|
||||
|
||||
`vimm-dl` will prompt you for any permission it needs during runtime. At a
|
||||
minimum, `vimm-dl` requires write permission to the destination folder where the
|
||||
games will be saved. Here is an example prompt asking for write access to the
|
||||
`/home/vimm/Downloads` directory:
|
||||
|
||||
```text
|
||||
┌ ⚠️ Deno requests write access to "/home/vimm/Downloads".
|
||||
├ Requested by `Deno.permissions.request()` API.
|
||||
├ Run again with --allow-write to bypass this prompt.
|
||||
└ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all write permissions) >
|
||||
```
|
||||
|
||||
When you encounter a prompt like this, just review the request and choose if it
|
||||
should be allowed. Denying a permission will cause the the program to exit
|
||||
without proceeding further.
|
||||
|
||||
> NOTE: To disable the sandboxing, you must compile your own binary with all
|
||||
> permissions allowed. If this is what you would like, then I suggest checking
|
||||
> out the [Allowing All Permissions](compiling#allowing-all-permissions) section
|
||||
> of the [Compiling from Source](compiling) page.
|
||||
|
||||
## Basic Usage
|
||||
|
||||
Download games from [The Vault](https://vimm.net/vault) by supplying one or more
|
||||
URLs to `vimm-dl`. A table will be displayed which contains information about
|
||||
the games to be downloaded. You will then be prompted to proceed with the
|
||||
downloads which gives you an opportunity to review the table.
|
||||
|
||||
Download a game and save it in the `~/Downloads` folder:
|
||||
|
||||
```sh
|
||||
vimm-dl https://vimm.net/vault/5953 --destination ~/Downloads
|
||||
```
|
||||
|
||||
Download multiple games by providing more than one URL:
|
||||
|
||||
```sh
|
||||
vimm-dl https://vimm.net/vault/5953 https://vimm.net/vault/5359 --destination ~/Downloads
|
||||
```
|
||||
|
||||
## Supply URLs from a Text File
|
||||
|
||||
You can instruct `vimm-dl` to read URLs from a text file with the `--file`
|
||||
option. The `--file` option takes a path to a text file containing a
|
||||
newline-separated list of IDs.
|
||||
|
||||
For example, here is a text file called `vimm-dl.txt` which contains the
|
||||
following:
|
||||
|
||||
```text
|
||||
https://vimm.net/vault/5953
|
||||
https://vimm.net/vault/5359
|
||||
https://vimm.net/vault/2344
|
||||
```
|
||||
|
||||
You can tell `vimm-dl` to read the URLs from this file like so:
|
||||
|
||||
```sh
|
||||
vimm-dl --file ./vimm-dl.txt --destination ~/Downloads
|
||||
```
|
||||
|
||||
If the `--file` option has been provided, `vimm-dl` will prioritize reading from
|
||||
the file and ignore any URLs provided on the command line. So,
|
||||
`https://vimm.net/vault/7271` in the following command will be ignored:
|
||||
|
||||
```sh
|
||||
vimm-dl https://vimm.net/vault/7271 --file ./vimm-dl.txt --destination ~/Downloads
|
||||
```
|
||||
|
||||
## Shell Completions
|
||||
|
||||
`vimm-dl` can generate shell completions with the `completions` subcommand. The
|
||||
subcommand will output completions for the specified shell to stdout.
|
||||
|
||||
For example, you generate completions for [FISH](https://fishshell.com/) and
|
||||
redirect the output straight to its completions directory:
|
||||
|
||||
```sh
|
||||
vimm-dl completions fish > ~/.config/fish/completions/vimm-dl.fish
|
||||
```
|
||||
|
||||
Display the help menu for more information and to list the supported shell
|
||||
environments:
|
||||
|
||||
```sh
|
||||
vimm-dl completions --help
|
||||
```
|
||||
|
||||
## Display the Help Menu
|
||||
|
||||
The help menu provides the complete list of options and other helpful
|
||||
information. Use the `--help` option to display the menu:
|
||||
|
||||
```sh
|
||||
vimm-dl --help
|
||||
```
|
Loading…
Reference in a new issue