wip xiaomitool package

This commit is contained in:
Gabriel Fontes
2022-04-19 10:41:25 -03:00
parent d2dfcf89aa
commit 4da36a7099
5 changed files with 166 additions and 1 deletions
+1
View File
@@ -11,4 +11,5 @@
shellcolord = pkgs.callPackage ./shellcolord { };
swayfader = pkgs.callPackage ./swayfader { };
wallpapers = pkgs.callPackage ./wallpapers { };
xiaomitool = pkgs.callPackage ./xiaomitool { };
}
+96
View File
@@ -0,0 +1,96 @@
{ lib, stdenv, fetchFromGitHub, makeWrapper, gradle_6, jdk11, perl, writeText }:
let
pname = "xiaomitoolv2";
version = "unstable-2021-03-25";
jdk = jdk11;
gradle = gradle_6;
src = fetchFromGitHub {
owner = "francescotescari";
repo = pname;
rev = "256679c6061fb2ffcda7fe59caa60a9a3d04517d";
sha256 = "sha256-QffTGyv+JCF0Phz5GgLLs8gtypYIjZ9MPNO57ksFWNw=";
};
patches = [ ./fix-captcha.patch ./update-api-params.patch ];
deps = stdenv.mkDerivation {
pname = "${pname}-deps";
inherit src patches version;
nativeBuildInputs = [ gradle jdk perl ];
buildPhase = ''
export GRADLE_USER_HOME=$(mktemp -d)
gradle --no-daemon --info build
'';
# Mavenize dependency paths
# e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.0.jar
installPhase = ''
find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
| sh
'';
outputHashMode = "recursive";
outputHashAlgo = "sha256";
# outputHash = "sha256-85U9qZswLHt3csgPf0N4/BtVF94I+An4OGklKs0Xvac=";
};
# Point to our local deps repo
gradleInit = writeText "init.gradle" ''
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
clear()
maven { url '${deps}' }
}
}
}
logger.lifecycle 'Replacing Maven repositories with ${deps}...'
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
clear()
maven { url '${deps}' }
}
}
repositories {
clear()
maven { url '${deps}' }
}
}
}
'';
in
stdenv.mkDerivation {
inherit pname version src patches;
nativeBuildInputs = [ gradle jdk makeWrapper ];
buildPhase = ''
runHook preBuild
export GRADLE_USER_HOME=$(mktemp -d)
gradle --offline --no-daemon --info --init-script ${gradleInit} distTar
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm644 build/libs/XiaomiToolV2.jar $out/lib/xiaomitool.jar
mkdir -p $out
tar xf build/distributions/XiaomiToolV2.tar --strip-components=1 --directory $out/
wrapProgram $out/bin/xiaomitool \
--set JAVA_HOME "${jdk}"
runHook postInstall
'';
}
+14
View File
@@ -0,0 +1,14 @@
diff --git a/build.gradle.kts b/build.gradle.kts
index 5b14c43..e93e5df 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -32,7 +32,8 @@ java {
}
javafx {
- version = "11.0.2"
+ //version = "11.0.2"
+ version = "17.0.2"
modules = listOf("javafx.controls", "javafx.fxml", "javafx.web", "javafx.swing")
}
+15
View File
@@ -0,0 +1,15 @@
diff --git a/src/main/java/com/xiaomitool/v2/gui/controller/LoginController.java b/src/main/java/com/xiaomitool/v2/gui/controller/LoginController.java
index c90bb86..d5e4b0d 100644
--- a/src/main/java/com/xiaomitool/v2/gui/controller/LoginController.java
+++ b/src/main/java/com/xiaomitool/v2/gui/controller/LoginController.java
@@ -35,8 +35,8 @@ import java.net.HttpCookie;
import java.net.URI;
import java.util.Locale;
-public class LoginController extends DefaultController {
- private static final String LOGIN_URL = "https://account.xiaomi.com/pass/serviceLogin?sid=passport&json=false&passive=true&hidden=false&_snsDefault=facebook&_locale=" + Locale.getDefault().getLanguage().toLowerCase();
+public class LoginController extends DefaultController {
+ private static final String LOGIN_URL = "https://account.xiaomi.com/pass/serviceLogin?sid=unlockApi&json=false&passive=true&hidden=false&_snsDefault=facebook&checkSafePhone=true&_locale=" + Locale.getDefault().getLanguage().toLowerCase();
private static boolean loggedIn = false;
private static Thread loginThread = null;
@FXML
+40 -1
View File
@@ -5,7 +5,46 @@
{
plugin = telescope-nvim;
config = /* vim */ ''
lua require('telescope').setup{}
lua << EOF
local actions = require('telescope.actions')
local action_state = require('telescope.actions.state')
local telescope_custom_actions = {}
function telescope_custom_actions._multiopen(prompt_bufnr, open_cmd)
local picker = action_state.get_current_picker(prompt_bufnr)
local selected_entry = action_state.get_selected_entry()
local num_selections = #picker:get_multi_selection()
if not num_selections or num_selections <= 1 then
actions.add_selection(prompt_bufnr)
end
actions.send_selected_to_qflist(prompt_bufnr)
vim.cmd("cfdo " .. open_cmd)
end
function telescope_custom_actions.multi_selection_open(prompt_bufnr)
telescope_custom_actions._multiopen(prompt_bufnr, "edit")
end
require('telescope').setup {
defaults = {
mappings = {
i = {
['<C-j>'] = actions.move_selection_next,
['<C-k>'] = actions.move_selection_previous,
['<tab>'] = actions.toggle_selection + actions.move_selection_next,
['<s-tab>'] = actions.toggle_selection + actions.move_selection_previous,
['<cr>'] = telescope_custom_actions.multi_selection_open
},
n = {
['<tab>'] = actions.toggle_selection + actions.move_selection_next,
['<s-tab>'] = actions.toggle_selection + actions.move_selection_previous,
['<cr>'] = telescope_custom_actions.multi_selection_open
}
},
}
}
EOF
nnoremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>