diff --git a/.gitignore b/.gitignore index 8286515..04d4041 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ .vscode _build .flatpak-builder +/src/__pycache__ +/src/download/__pycache__ +/src/window/__pycache__ diff --git a/README.md b/README.md index 3a97467..62db955 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,36 @@ -

-

Varia

-

Download manager based on aria2

+
+

-

Homepage

+# Varia -
+

Download manager based on aria2

-

+

🌐 Homepage


-

- -![](https://img.shields.io/github/commits-since/giantpinkrobots/varia/latest/main?label=commits%20since%20latest%20release) ![](https://img.shields.io/github/forks/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/stars/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/watchers/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/issues/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/issues-closed/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/issues-pr/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/issues-pr-closed/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/license/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/followers/giantpinkrobots.svg?style=social&label=Follow&maxAge=2592000) +| Download for Linux | Download for Windows | Browser Extension | +| -------- | ------- | ------- | +| [⬇ Flathub](https://flathub.org/apps/io.github.giantpinkrobots.varia) | [⬇ Installer](https://github.com/giantpinkrobots/varia/releases/download/v2024.11.7/varia-windows-setup-amd64.exe) | [❖ Firefox](https://addons.mozilla.org/firefox/addon/varia-integrator/) | +| [⬇ AUR (unofficial)](https://aur.archlinux.org/packages/varia) | [⬇ Portable](https://github.com/giantpinkrobots/varia/releases/download/v2024.11.7/varia-windows-portable-amd64.zip) | [❖ Chrome](https://chrome.google.com/webstore/detail/dacakhfljjhgdfdlgjpabkkjhbpcmiff) | -

+
Varia is a simple download manager that conforms to the latest Libadwaita design guidelines, integrating nicely with GNOME. It uses the amazing aria2 to handle the downloads. +
+

+

+ +![](https://img.shields.io/github/commits-since/giantpinkrobots/varia/latest/main?label=commits%20since%20latest%20release) ![](https://img.shields.io/github/forks/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/stars/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/watchers/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/issues/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/issues-closed/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/issues-pr/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/issues-pr-closed/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/license/giantpinkrobots/varia.svg) ![](https://img.shields.io/github/followers/giantpinkrobots.svg?style=social&label=Follow&maxAge=2592000) + +

+ It supports basic functionality like continuing incomplete downloads from the previous session upon startup, pausing/cancelling all downloads at once, setting a speed limit, authentication with a username/password, setting the simultaneous download amount and setting the download directory. ## Get Varia @@ -37,8 +45,8 @@ This requires you to have Flatpak and the Flathub Flatpak repository installed o ### AUR (Arch Linux) You can get Varia via the [AUR](https://aur.archlinux.org/packages/varia) as well, but it is not distributed by me. -### Windows (experimental) -You can find a *highly experimental* build of Varia in the releases section. But keep in mind, it will have bugs. +### Windows +You can find amd64 builds of Varia in the Releases section in both installer and portable forms. The installer version is recommended and it includes an auto updater function. ## Browser Extension Download it for [Firefox](https://addons.mozilla.org/firefox/addon/varia-integrator/) or [Chrome](https://chrome.google.com/webstore/detail/dacakhfljjhgdfdlgjpabkkjhbpcmiff). @@ -88,32 +96,16 @@ sudo meson install ### for Windows -Windows support is experimental. Translations don't work yet. - - [Get MSYS2.](https://www.msys2.org/) -- Install dependencies on an MSYS2 shell: -``` -pacman -S mingw-w64-x86_64-python -pacman -S mingw-w64-x86_64-gtk4 -pacman -S mingw-w64-x86_64-libadwaita -pacman -S mingw-w64-x86_64-python-gobject -pacman -S mingw-w64-x86_64-python-pip -pip install aria2p -pip install pyinstaller -``` -- To have the icon applied properly you also need python-pillow, otherwise pyinstaller gives an error: -``` -pacman -S mingw-w64-x86_64-python-pillow -``` -- Copy the contents of the /src folder to the home directory of your MSYS2 install. -- Copy varia.spec and icon.ico from the /windows directory to the home directory of your MSYS2 install. -- Run the pyinstaller command: +- Open the mingw64 shell in MSYS2 and update everything before continuing: ``` -pyinstaller varia.spec +pacman -Syyu ``` -- [You need to get a copy of aria2c.exe](https://github.com/aria2/aria2/releases) and paste it into the /dist/variamain folder that was created by pyinstaller. +- Either clone Varia inside the shell or copy the folder to your MSYS2 home folder. +- [You need to get a copy of aria2c.exe](https://github.com/aria2/aria2/releases) and paste it into the root of the folder. +- Running 'build-for-windows.sh' will take care of the dependencies and everything else and build Varia WITHOUT the updater function. To enable the updater function you need to run the script with the '-u' argument. (or just create an empty file called 'updater-function-enabled' next to variamain.exe after completion) -Running variamain.exe will start Varia. +Varia will be built into src/dist/variamain. Main executable is variamain.exe. ## Contributing diff --git a/build-for-windows.sh b/build-for-windows.sh new file mode 100644 index 0000000..c8bec46 --- /dev/null +++ b/build-for-windows.sh @@ -0,0 +1,60 @@ +updater=0 + +while getopts "hu" flag; do + case $flag in + h) + echo "No flags - Build without the updater function" + echo "-u - Enable the updater function" + exit + ;; + u) + updater=1 + ;; + esac +done + +if [ ! -f ./aria2c.exe ]; then + echo "aria2c.exe does not exist. You need to copy it here before you can run this." + exit +fi + +echo "Installing dependencies..." + +pacman -S --noconfirm --needed mingw-w64-x86_64-python +pacman -S --noconfirm --needed mingw-w64-x86_64-gtk4 +pacman -S --noconfirm --needed mingw-w64-x86_64-libadwaita +pacman -S --noconfirm --needed mingw-w64-x86_64-python-pillow +pacman -S --noconfirm --needed mingw-w64-x86_64-python-gobject +pacman -S --noconfirm --needed mingw-w64-x86_64-python-pip +pip install aria2p +pip install pyinstaller + +echo "Generating locales..." + +rm -rf locale +mkdir locale +for po in po/*.po; do + lang=$(basename "$po" .po) + mkdir locale/$lang + mkdir locale/$lang/LC_MESSAGES + msgfmt -o "locale/$lang/LC_MESSAGES/varia.mo" "$po" +done + +echo "Building PyInstaller distributable..." + +cp -r windows/* src/ +cd src +pyinstaller varia.spec +cd .. +cp -r locale src/dist/variamain/ +cp data/icons/hicolor/symbolic/apps/io.github.giantpinkrobots.varia-symbolic.svg src/dist/variamain/ +cp data/icons/hicolor/scalable/apps/io.github.giantpinkrobots.varia.svg src/dist/variamain/ +cp -r dependencies_information src/dist/variamain/ +cp ./aria2c.exe src/dist/variamain/ + +if [ $updater -eq 1 ]; then + touch src/dist/variamain/updater-function-enabled +fi + +echo "Build complete." +echo "src/dist/variamain/variamain.exe" \ No newline at end of file diff --git a/data/io.github.giantpinkrobots.varia.metainfo.xml.in b/data/io.github.giantpinkrobots.varia.metainfo.xml.in index f48654c..e570e99 100644 --- a/data/io.github.giantpinkrobots.varia.metainfo.xml.in +++ b/data/io.github.giantpinkrobots.varia.metainfo.xml.in @@ -10,9 +10,9 @@ Giant Pink Robots! -https://github.com/giantpinkrobots/varia +https://giantpinkrobots.github.io/varia https://github.com/giantpinkrobots/varia -https://github.com/giantpinkrobots/varia/tree/main/po +https://github.com/giantpinkrobots/varia/tree/next/po en_US @@ -31,19 +31,38 @@ es_ES fa_IR hi_IN +bg_BG +zh_CN -#E9F0F9 -#454545 +#DBE8F5 +#010E1D

Varia is a download manager for all your download needs. It can download regular files and torrents, and do it very quickly.

+

-Using Varia is very easy and straightforward, and with its aria2 backend it can potentially increase the speed of your downloads. It can integrate with Firefox or Chrome/ium through a browser extension, configured to your liking, and even support a remote aria2 instance on another computer. +Varia uses GTK4 and Libadwaita for the user interface and utilizes Aria2 for the downloads underneath. It is free software licensed under the Mozilla Public License 2.0. A list of dependencies can be viewed through the Legal section in the About Varia page.

@@ -68,17 +87,15 @@ Using Varia is very easy and straightforward, and with its aria2 backend it can - + -
  • Download scheduling: Start or stop downloading in given timespans.
  • -
  • cookies.txt file import support.
  • -
  • Remote timestamp support.
  • -
  • Options to filter by seeding and failed downloads in the sidebar.
  • -
  • Quit on completion option.
  • -
  • Start in background mode option.
  • -
  • Spanish language support.
  • -
  • Persian language support.
  • -
  • Hindi language support.
+
  • Support for opening .torrent files.
  • +
  • Downloads now show the estimated time remaining.
  • +
  • UI tweaks and fixes for a better layout.
  • +
  • Remote mode option is available again.
  • +
  • A lot of under the hood changes to fix bugs and improve performance.
  • +
  • Update to the GNOME 47 runtime and new Libadwaita widgets.
  • +
  • Support for Bulgarian and Chinese (China) languages.
diff --git a/data/io.github.giantpinkrobots.varia.mime.svg b/data/io.github.giantpinkrobots.varia.mime.svg new file mode 100644 index 0000000..0ef8679 --- /dev/null +++ b/data/io.github.giantpinkrobots.varia.mime.svg @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/io.github.giantpinkrobots.varia.mime.xml b/data/io.github.giantpinkrobots.varia.mime.xml new file mode 100644 index 0000000..c073195 --- /dev/null +++ b/data/io.github.giantpinkrobots.varia.mime.xml @@ -0,0 +1,14 @@ + + + + Varia Download Progress + + + + + Aria2 Download Progress + + + + + diff --git a/data/meson.build b/data/meson.build index 19be115..d32ca05 100644 --- a/data/meson.build +++ b/data/meson.build @@ -28,6 +28,14 @@ install_data('io.github.giantpinkrobots.varia.gschema.xml', install_dir: get_option('datadir') / 'glib-2.0' / 'schemas' ) +install_data('io.github.giantpinkrobots.varia.mime.xml', + install_dir: join_paths(get_option('datadir'), 'mime', 'packages') +) + +install_data('io.github.giantpinkrobots.varia.mime.svg', + install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', 'scalable', 'mimetypes') +) + compile_schemas = find_program('glib-compile-schemas', required: false, disabler: true) test('Validate schema file', compile_schemas, diff --git a/docs/downloadIcon.png b/docs/downloadIcon.png deleted file mode 100644 index 417bee3..0000000 Binary files a/docs/downloadIcon.png and /dev/null differ diff --git a/docs/index.html b/docs/index.html index 1e95887..eda87fc 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,6 +2,7 @@ + @@ -29,6 +30,8 @@

Varia

Quick and efficient download manager

+ +