Skip to content

Commit

Permalink
Merge branch 'next'
Browse files Browse the repository at this point in the history
  • Loading branch information
giantpinkrobots committed Nov 7, 2024
2 parents 80e2887 + 26cbb23 commit b8c0569
Show file tree
Hide file tree
Showing 40 changed files with 2,373 additions and 455 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@
.vscode
_build
.flatpak-builder
/src/__pycache__
/src/download/__pycache__
/src/window/__pycache__
60 changes: 26 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,36 @@
<p align="center"><img src="https://raw.githubusercontent.com/giantpinkrobots/varia/main/windows/icon.ico" width=200 /></p>
<h1 align="center">Varia</h1>
<h3 align="center">Download manager based on aria2</h3>
<center>
<p><img src="https://raw.githubusercontent.com/giantpinkrobots/varia/main/windows/icon.ico" width=200 /></p>

<h3 align="center"><a href="https://giantpinkrobots.github.io/varia">Homepage</a></h3>
# Varia

<br>
<h3>Download manager based on aria2</h3>

<p align="center"><a href="https://flathub.org/apps/io.github.giantpinkrobots.varia"><img src="https://dl.flathub.org/assets/badges/flathub-badge-i-en.svg" width=250 /></a></p>
<h3><a href="https://giantpinkrobots.github.io/varia">🌐 Homepage</a></h3>

<br>

<p align="center">

![](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) |

</p>
<br>

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.

</center>

<p float="left" align="middle">
<img src="https://raw.githubusercontent.com/giantpinkrobots/varia/main/screenshots/Screenshot-Varia-1.png" width=400 />
<img src="https://raw.githubusercontent.com/giantpinkrobots/varia/main/screenshots/Screenshot-Varia-2.png" width=400 />
</p>

<p>

![](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)

</p>

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
Expand All @@ -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).
Expand Down Expand Up @@ -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

Expand Down
60 changes: 60 additions & 0 deletions build-for-windows.sh
Original file line number Diff line number Diff line change
@@ -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"
47 changes: 32 additions & 15 deletions data/io.github.giantpinkrobots.varia.metainfo.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
<developer_name>Giant Pink Robots!</developer_name>

<content_rating type="oars-1.1" />
<url type="homepage">https://github.com/giantpinkrobots/varia</url>
<url type="homepage">https://giantpinkrobots.github.io/varia</url>
<url type="vcs-browser">https://github.com/giantpinkrobots/varia</url>
<url type="translate">https://github.com/giantpinkrobots/varia/tree/main/po</url>
<url type="translate">https://github.com/giantpinkrobots/varia/tree/next/po</url>

<languages>
<lang>en_US</lang>
Expand All @@ -31,19 +31,38 @@
<lang>es_ES</lang>
<lang>fa_IR</lang>
<lang>hi_IN</lang>
<lang>bg_BG</lang>
<lang>zh_CN</lang>
</languages>

<branding>
<color type="primary" scheme_preference="light">#E9F0F9</color>
<color type="primary" scheme_preference="dark">#454545</color>
<color type="primary" scheme_preference="light">#DBE8F5</color>
<color type="primary" scheme_preference="dark">#010E1D</color>
</branding>

<description>
<p>
Varia is a download manager for all your download needs. It can download regular files and torrents, and do it very quickly.
</p>
<ul>
<li>
Download files and torrents quickly - potentially faster than your browser, continue incomplete downloads even after reboots
</li>
<li>
Integrate with Firefox and Chrome (or any Chromium based browser) to redirect downloads
</li>
<li>
Schedule downloads with a powerful scheduler allowing for custom timespans for each day of the week
</li>
<li>
Download from protected areas with basic auth and cookies.txt import support
</li>
<li>
Control a remote aria2 instance running on any server
</li>
</ul>
<p>
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.
</p>
</description>

Expand All @@ -68,17 +87,15 @@ Using Varia is very easy and straightforward, and with its aria2 backend it can
</screenshots>

<releases>
<release version="v2024.5.7" date="2024-05-07">
<release version="v2024.11.7" date="2024-11-07">
<description translatable="yes">
<ul><li>Download scheduling: Start or stop downloading in given timespans.</li>
<li>cookies.txt file import support.</li>
<li>Remote timestamp support.</li>
<li>Options to filter by seeding and failed downloads in the sidebar.</li>
<li>Quit on completion option.</li>
<li>Start in background mode option.</li>
<li>Spanish language support.</li>
<li>Persian language support.</li>
<li>Hindi language support.</li></ul>
<ul><li>Support for opening .torrent files.</li>
<li>Downloads now show the estimated time remaining.</li>
<li>UI tweaks and fixes for a better layout.</li>
<li>Remote mode option is available again.</li>
<li>A lot of under the hood changes to fix bugs and improve performance.</li>
<li>Update to the GNOME 47 runtime and new Libadwaita widgets.</li>
<li>Support for Bulgarian and Chinese (China) languages.</li></ul>
</description>
</release>
</releases>
Expand Down
Loading

0 comments on commit b8c0569

Please sign in to comment.