| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I've already pointed out in the previous commit that using /tmp for the
root directory isn't a very good idea, mainly because we can't access
sockets from /tmp (eg. the X server sockets).
So what we're now doing is using the store path that contains the
sandbox wrappers, because that very path won't be mounted into the
sandbox anyway, so we get a free directory just as an entry point.
This has the main advantage that we don't need to create any temporary
directories which we later need to clean up nor do we need to assume
that some paths might exist in the system. For example if we'd use /usr
we still have /usr/bin/env on NixOS, but if that's going to go away in
the future or we are on a distro that doesn't have it at all, the
sandbox setup will fail.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far creating the sandbox has been a setup hook, however it's a bit
ugly how we gathered the needed paths for the chroot file system by
recursively searching for store paths.
While I'd like to have the sandbox being built within the main
derivation, it really isn't very practical when the build takes longer
than 10 minutes.
With this implementation however the sandbox builds really fast and we
can also modify the sandbox without needing to rebuild a particular
game.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is basically to make sure various games can't write to whatever
they want in the file system, so it's not a complete sandboxing
solution.
Currently there's a drawback in that we can't easily determine the
runtime dependencies while building a particular game, so we need to
recursively dig through all referenced store paths to look them up.
A better solution for this would be to gather the build time reference
graph prior to building so that we can limit searching for these
references within only the actual build outputs instead of churning
through all inputs.
In addition to that, we currently mount the namespaced root file system
on top of /tmp, which makes the real /tmp unavailable to us. While in
theory this shouldn't be a problem, it actually turns out it is indeed a
problem if the application wants to connect to the X server socket,
which is at something like /tmp/.X11-unix/X0 for display :0.
Apart from these drawbacks we have a working solution for simple
applications (not games, because they usually require X), which now get
its own chroot with only the paths accessible that are strictly
necessary.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New features:
* NET: Join & invite your Steam friends through the in-game lobby menu
or Steam friends list
* GAME: Experimental fallback for unsupported controllers & generic USB
gamepads
* GAME: Added an achievement for completing the training
* UI: Your Steam nickname will show at the top left of the title screen
* UI: New lobby chat message: "I'm going to spectate this match."
* PREFS: Set your own data export path in the "config.json" file in the
game directory
Updates:
* GAME: The shield is only lost when dealt actual damage (not via
stuns, Yeti breath, etc)
* GAME: Lower chance of character repetition when choosing random
heroes
* GAME: More obvious shocked/soft-stun effect and audio
* GAME: Bubble Suit removed
* NET: Online play requires the latest version if there's an update
available
* AETHER: Aether is immobile for 0.3s after a ground pound
* AETHER: Aether's spam cooldown increased from 0.5s to 0.7s
* AETHER: Aether's pound has a circular radius of 2 units from his
center
* AETHER: Pound hard stuns for 1.25s
* AETHER: Pound pushback force is uniform
* CARMEN: Destroyed block rubble remains for 3s instead of 0.5s
* PROTEUS: Tagged players are slowed more (multiplier changed from
0.65x to 0.45x)
* PROTEUS: The Scanner Drone can't be self-destroyed while
pulse-revealing players
* IRIS: Spam allowed reduced from 3 to 2
* EPI: Epi has an ability cooldown of 2s if the ghost is killed (no
self-imposed cooldown)
* UI: "Join Public Match" is now "Quick Match" with an icon update
* UI: Searching for a public match in "Any" region is faster
* UI: More fun title screen news
Fixes
* GAME: Fixed projectiles having no velocity if split while being
reflected
* GAME: Fixed controller lockup in lobby when switching from previously
chosen player slots
* GAME: Fixed perma-visibility after teleporting while revealed
* GAME: Fixed disappearing revealer if it's pursuing a teleporting
player
* GAME: Fixed possibility that a Beast Tamer pit beast could spawn
outside the map
* AETHER: Aether no longer gets stunned if walking into a player that
he pounded
* EPI: Fixed real Epi teleporting to ghost Epi if inputs are triggered
twice in a frame
* UI: Fixed some lobby UI initialization before an online match is
created
* UI: Fixed edge cases that could cause a client to be stuck "waiting
for host" in the lobby
* UI: Fixed pause menu "Return to Lobby" button for Challenge Mode
* UI: Fixed color & bloom values in field guide
Full upstream change log:
http://www.sombr.com/pub/SIG/tools/ReleaseNotes.php
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
| |
Most older games don't cope very well with PulseAudio, so let's add ALSA
so that a fallback is available. This is also very useful if
withPulseAudio is set to false, because this would actually mean "no
audio at all".
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Both of these games weren't working at all. Megabyte Punch was
completely broken and the expression wasn't even finished and Lovers In
A Dangerous Spacetime wasn't up to date (unfortunately we can't pin on a
specific version).
Megabyte Punch now also uses callPackage_i686, because it only comes
with a 32 bit binary.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
So far we only had all the functions within build-support for
builtins.currentSystem, but a few games we have within Vuizvui are still
i686-linux.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
| |
The login URL for HumbleBundle has changed from /login to /processlogin,
so let's fix it quickly via sed.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Issue: saik0/humblebundle-python#16
Cc: @saik0
|
|
|
|
|
|
|
|
|
|
|
| |
A lot of games come as a Zip archive, so let's add it to
nativeBuildInputs by default so we no longer need to deal with that for
every single game.
This also removes that line from Invisigun Heroes, so the package now is
pretty much minimal and very clean :-)
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
A lot of games (especially Unity games) come as a tarbomb, so in order
to avoid having those files all over the place we now create an
additional directory before unpack and set the sourceRoot to that if
it's a tarbomb and if that's not the case set it to the single file
within that directory.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Now we no longer need to invoke patchelf by ourselves and all of the
dependencies are patched automatically.
I've added gtk2-x11, gdk_pixbuf and glib to buildUnity as well, because
after inspecting other Unity games they seem to require the same
libraries as well.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
| |
This allows us to add libraries to the RPATH despite being required by
the respective game. By default there is only PulseAudio at the moment.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main functionality for this function is to gather missing
dependencies in ELF executables and shared libraries and using patchelf
to set the right RPATH.
All of the dependencies are searched based on what we have in one of the
buildInputs variables, so all we need to do is list them in there.
One thing that's still left to solve is adding libraries to the RPATH
which are only required at runtime. An example for this would be the
pulseaudio library.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This automatically creates a desktop entry based on the given fullName
and the standard path for the icon (Resources/UnityPlayer.png).
Well, at least I hope that the icon path is standard, but we'll see once
we use buildUnity for more games.
Tested using Plasma 5 for Invisigun Heroes.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
The executable of Unity games at the moment is unable to find its own
path if it can't do a stat() on argv[0]. So wrapping the program helps
here for now.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
| |
There are a lot of Unity games out there, so it's a good idea to have a
generic builder just for Unity, which we then can apply to a lot more
games.
Right now this is a pretty basic abstraction which I've only tested with
Invisigun Heroes.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
| |
This is such a short expression that really shouldn't belong in its own
file, so that everything we want to know is there in default.nix.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The full upstream changes are a bit long to list here between 1.5.1 and
1.5.30, so here are the release notes from the official site:
http://www.sombr.com/pub/SIG/tools/ReleaseNotes.php
We're now using a version attribute for the fetchItch function, so that
future updates won't break the package expression.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far we had a similar "experience" with itch.io as we had with
humblebundle having upstream URLs being updated in-place and thus
whenever we're trying to get an earlier revision than the latest one,
our fetcher would fail.
However, itch.io has build IDs which even contain version string that we
can actually use in our packages as-is and they directly map to a build
ID.
This commit implements just that, so that whenever a version attribute
is passed to fetchItch, an explicit version is selected. If such a
version couldn't be found, a list of the most recent versions is
displayed, which should also make it easier for updating packages.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
I was using set for a bunch of these, but these autocommands are only
used for single buffers so let's actually make sure they are set only
there by using setlocal.
In addition to that I've corrected usage of '==' to use '==#', because
'==' actually depends on user settings whether it's case sensitive or
not (set ignorecase).
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
I work with a lot of differente repositories and different indentation
styles, so I hope this plugin will help cope with that so I no longer
need to set those settings manually.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
| |
I happen to work with CSV files quite a bit lately but it's a major
nuisance doing so with a normal text editor and I don't want to use a
full-blown spreadsheet programm just for a few CSV files or even write a
script every time I need to edit only a tiny bit.
So this plugin solves that problem for me.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Originally I only wanted to make sure the ftplugin gets loaded before
the syntax file, but while at it I thought just prepending/appending
stuff to the runtimepath is not enough for me.
So now my version of Vim has all the plugins directly in the standard
directories just as if they came with upstream.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
| |
This is an override of xournal with a patch that allows to keep the
aspect ratio while resizing.
Origin of the patch: https://sourceforge.net/p/xournal/patches/58/
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
This introduces support for fetching games from itch.io, because the
Humble Bundle version unfortunately only provides a Steam key and we
obviously don't want that.
I only played two levels, but so far it works as intended.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
| |
The current master contains a few fixes with indentation which I
regularly hit while writing Nix expressions.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Pull request is from @layus and I haven't tested the game, because I
don't own it myself, but apparently @Profpatsch seems to got it working
to the point of having a black screen, but that could be a rendering
issue.
So I'm merging this anyway, because even if only one person (@layus) is
going to play it, it won't hurt and if multiple people using the
expressions we probably get bug reports :-)
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Both are the remastered versions available via Humble Bundle and both
also needed a bit of patching via an LD preloader in order to work as
intended.
Day of the Tentacle conforms to XDG but it assumes that the data
directory is in the same directory of the executable, so we fake
/proc/self/exe to point to the "$out/share/dott/DUMMY". The "DUMMY" here
is because the implementation does a dirname() on the directory.
Grim Fandango on the other hand needs a bit more patching, so we first
of all override the _first_ chdir() the game does to point to the data
directory but we also override fopen64() and opendir() to use the
XDG_DATA_HOME-based save directory whenever one of these calls point to
"./Saves/..." because the data directory resides inside the store and
thus is (of course) read-only.
I had the expressions for these two games laying around for quite a
while, so while merging another game from a PR I thought it would be a
good opportinity to merge them as well.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|/
|
|
|
|
|
|
|
| |
While I find visual (block) mode quite useful, it doesn't cope well if
you have multiple lines that aren't aligned perfectly.
This plugin adds that missing feature.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
| |
This reverts commit 1fcecd0b9d6424f32f304c4fda0598894aac2011.
It was written by @layus and the code came from PR #14.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Haxe plugin(s) I've used so far (vim-haxe and vim-haxe-syntax) are
no longer actively maintained since 2014.
On the other hand "vaxe" is based on the work on vim-haxe and
vim-haxe-syntax, is actively maintained and supports newer language
features of Haxe as well.
I've patched out syntax highlighting for ',' and ';', because I really
get eye cancer with this and reminds me a bit about the annoying bold
colons when using nickname completion back in the days where BitchX
users were widely seen on IRC.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
The reason is that for terminals that have a width of 80 characters,
having a line with exactly 80 characters will wrap it.
I've wrapped most of my code in 79 characters since a while manually, so
it's time to enforce this by the editor.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
| |
The default is 50, which is a bit small for my taste.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
This one is annoying because it enables mouse mode and it's sourced
*after* our defined configuration. Setting skip_defaults_vim disables
this behaviour.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
I don't use anything that's machine specific within my Vim
configuration (and even if, we can pass it via the callPackage
arguments) so it's kinda pointless that it's a module instead of a plain
package (override).
This makes it also easier to nix-build the package without the need to
go through the module system.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Additions and changes:
* Reduce cost of player station parts
* Show some system information on hovering over stars in the navigation
interface
* Show system name on the system screen in the navigation interface
* Properly beam away a player's mech when a player beams off the world
* Deploying to asteroid fields puts you in a position related to where
in the field your ship is
* Allow any number of script panes with no source entity
* Add player.interact lua binding
* Keep player from starving when in a mech
Bug fixes:
* Various NPC and Monster behavior fixes
* Fix issue where player ships from other systems would be visible on
the navigation screen
* Fix issue where deploying to a party member could result in deploying
a mech to their ship
* Improve jarring movement of the sky during flying and warping
* Fix issue where inventory items would count twice in crafting
interfaces
* Fix parameters argument for spawnnpc console command
* Fix issue allowing the player to fly the ship before fully repairing
it
The full upstream release announcement can be found at:
http://playstarbound.com/starbound-1-3-2-changelog/
Tested using the games.starbound VM test.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
| |
I need to thoroughly test the latest development version, so it's a must
to keep it up to date.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The package fails because the mtp-jolla.patch was already applied
upstream, see the following build log:
https://headcounter.org/hydra/log/d21f1590i2hs6xhgkdr00906ksnvgxfz-libmtp-1.1.13.drv
This is the upstream commit by @Profpatsch that's now part of libmtp
version 1.1.13:
https://sourceforge.net/p/libmtp/code/ci/8919ebeef58251639454c2394c0274597be3df9c/
Tested by evaluating machines.profpatsch.katara.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Cc: @Profpatsch
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Minor changes / bug fixes:
* Added and improved sound effects for a variety of monsters, weapons
and mech components
* Fixed lots of typos
* Fix "Parts and Labour" quest description not matching its
requirements
* Fix bookmarks not being sorted alphabetically
* Fix players "swimming" off rail stops using rail hooks
* Fix world.spawnLiquid not functioning on tiles with rails/platforms
* Fix a bug allowing placement of blocks on some outside walls of
player stations
* Fix Triplod not registering in monster collection when captured
* Fix final ore type not being listed in navigation interface for some
planets
* Fix placement of a boulder trap in a challenge room
* Fix rustick being affected by physics forces/collisions
* Make airless space areas actually airless and require breath
protection
* Fix tier 4 mech bodies not protecting against radiation
* Fix penguin weapon shop not unlocking when repeating weapon testing
mission
* Fix passive monsters becoming aggressive when player engages hostile
monsters
* Fix some systems not zooming out far enough in nav and planets going
out of view
* Fix a bug causing a navigation crash when selecting gas giants
* Fix objects with minimum / maximum liquid levels not being broken
* Fix item drops being stuck in force regions at top / bottom of world
* Fix quest indicators being affected by world lighting
* Fix bug preventing some background tiles from being painted
* Disable "go to quest" button in nav when that system isn't explored
(e.g. in another universe)
* Fix some bugs when dual wielding rail hooks
* Prevent activating techs during mech deployment
* Don't show the "E" hint in dialog sequences that are not skippable
* Fix a bug where navigation could be canceled after consuming fuel
but before starting flight
* Rework behavior of hoverbikes in zero gravity
* Boats no longer sail out of water
* Add an icon to Tonauac's safe fall blessing
* Add a few more mech horns
* Prevent rail trams from driving off the ends of active stops
Modding API changes:
* Add world.setDungeonId binding
Full upstream release announcement:
http://playstarbound.com/1-3-1-changelog/
Tested using the games.starbound VM test.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new version of the "TRAVIC-Sign" extension that's used by the
Santander bank now relies on native messaging, so it's much much easier
for us to sandbox and also easier to integrate.
For more information about native messaging see:
https://developer.chrome.com/extensions/nativeMessaging
So the upstream only contains a Firefox extension, but it doesn't
deviate very much (at least since the new non-XUL API) from the Chromium
extension API, so we only need to patch the manifest (where we also
constrain the sites that the extension is allowed to run) and refer to
the Wine wrapper in the native messaging host configuration file.
Right now, the Chromium version that we have in <nixpkgs> still refers
to /usr/share/chromium/extensions in order to search for system-provided
extensions, so we need to fix that as well.
In our workstation profiles we now no longer have the santander package
in lazyPackages, because it's also no longer a binary.
Previously the main reason why I added it to lazyPackages was that the
whole santander package had a closure size of several hundred megabytes
because of the Wine prefix. The latter now is essentially empty.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tomahawk is no longer actively developed and the current state within
vuizvui is also broken. So after asking the users of brawndo and tyree
whether they still use it they answered with a "no", so it doesn't make
sense to fix up that package if noone is using it anyway.
This has also been announced via the README in the official GitHub
repository, where the change + comments can be seen here:
https://github.com/tomahawk-player/tomahawk/commit/c8389592488c07079
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
| |
The requests2 package has been merged into the original project
upstream and thus is deprecated.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
The tests that were failing (see previous commit) were actually related
to pyopenssl and i686-linux, so let's just build Gajim for x86_64-linux
because we won't use it on i686-linux anyway.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
| |
This reverts commit 121e4e98190cebe9fe64348ff3d16d2c049678c2.
I wasn't actually paying attention about the tests that were failing and
indeed the failing tests were in pyopenssl rather than in pycrypto.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
This package is outdated and only there for exactly that purpose
(because some Gajim plugins still depend on it), so we don't care about
failed unit tests, because those that are failing do not affect us.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
| |
I don't have time to look into this right now, but it doesn't build
because liblastfm doesn't build with Qt 5.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Major upstream changes are:
* Navigation Overhaul: The cockpit navigation interface has been
completely overhauled. Planets, moons and ships are all visible and
orbit each other in real time. Systems will now contain NPC stations,
friendly and hostile NPC ships, and strange space anomalies to visit!
* Customizable Mechs: Explore these new space locations in customizable
spacefaring mechs! Traverse hostile space in zero gravity, fight
powerful new space monsters, and collect unique rewards as you
upgrade your mech to progress through more difficult hazards. Mechs
can also be deployed to planets, to crush your enemies with
overwhelming firepower!
* Modular Space Stations: Make a permanent home among the stars with
player-owned stations! Use a station transponder to place your
station into orbit, then expand it with modular rooms to suit your
needs.
The full changes can be found at the announcement blog post at:
http://playstarbound.com/spacefarer-update/
One of the changes not listed there is that the archive now consists of
a server_linux and client_linux directory, where the latter is
structured the same as in previous versions. However, both contain the
server binary and both of these binaries match in content.
So I'm assuming that the server_linux directory is only a trimmed-down
version in terms of assets but otherwise pretty much the same.
I've also fixed the VM test, which didn't recognize the font of
"Species" anymore, so we're now matching on "randomise".
In addition to that I've added a sleep of 30 seconds before the final
screenshot, so we get a picture of the fully rendered intro scenario.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is not only a major annoyance for us but seems to bother a few
other people using the humblebundle-python API:
* saik0/humblebundle-python#11
* saik0/humblebundle-python#14
* saik0/humblebundle-python#15
While digging through the reCaptcha2 API and also the implementation of
the Humble Bundle site, I stumbled over this code from
https://www.humblebundle.com/user/captcha:
var captcha = new Recaptcha2('captcha-holder');
$('input[type=submit]').click(function(e){
e.preventDefault();
// recaptcha v2 only cares about response, but we can let the Android app interface stay the same
var challenge = '';
var response = captcha.get_response();
var android_defined = false;
if (typeof Android != 'undefined') {
Android.setCaptchaResponse(challenge, response);
}
})
So we only need the response, which we do now using a very ugly written
Qt 5 QWebEngine GUI which we use to ask the user to solve the captcha.
Combined with our downloader, it works like this:
Whenever the login fails with a HumbleCaptchaException, we print a
message with the store path to the GUI helper. We're inside a
fixed-output derivation builder, so we do have networking.
The GUI helper also runs a small TCP server listening on port 18123 and
the downloader inside the Nix builder constantly tries to connect to
that port and waits until it gets just one string (the connection is
directly closed afterwards and the GUI helper exits), which is the
response. This is then passed as recaptcha_response keyword argument to
the login() method of the HumbleApi object.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
| |
|