Skip to content

Commit

Permalink
Add ability to fill all auth settings by a single cURL string
Browse files Browse the repository at this point in the history
  • Loading branch information
extempl committed May 9, 2019
1 parent facb911 commit 222566b
Show file tree
Hide file tree
Showing 8 changed files with 289 additions and 210 deletions.
17 changes: 13 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,21 @@
После этого перезагрузить страницу и ещё раз запустить скрипт.

#### Настройки авторизации IMDB:

##### Генерация из cURL
* Сначала нужно открыть любой фильм на IMDB
* Потом открыть консоль разработчика (изменения при закрытой консоли там отображены не будут)
* Далее добавляем фильм вручную в любой список (кроме watchlist)
* После этого найти тестовый запрос и [скопировать его как строку cURL](docs/ObtainIMDBcURL.png)

##### Установить вручную
* [Ссылка на инструкцию с картинками](docs/ObtainIMDBAuthString.pdf)
* То же самое нужно проделать для полей `sid` и `session-id`

##### Пара ключ-значение в тестовом запросе:
* Нужно открыть любой фильм на IMDb и добавить его вручную в любой список (кроме watchlist)
* После этого открыть консоль разроботчика и найти там контрольную пару, как указано в [инструкции](docs/ObtainIMDBControlPair.png)
* Пара ключ-значение в тестовом запросе:
* Сначала нужно открыть любой фильм на IMDB
* Потом открыть консоль разработчика (изменения при закрытой консоли там отображены не будут)
* Далее добавляем фильм вручную в любой список (кроме watchlist)
* После этого найти контрольную пару, как указано в [инструкции](docs/ObtainIMDBControlPair.png)

#### ID списка IMDB:
* [Ссылка на инструкцию с картинками](docs/CreateListOrObtainListID.pdf)
Expand Down
2 changes: 1 addition & 1 deletion core/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version = "1.2.5"
version = "1.2.6"

ext {
guiceVersion = "4.0"
Expand Down
1 change: 1 addition & 0 deletions core/src/main/resources/application.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
],
"mode": "COMBINED",
"list": "",
"curlText": "",
"auth": "",
"authSid": "",
"authSessionId": "",
Expand Down
Binary file added docs/ObtainIMDBcURL.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion gui/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ plugins {
}

mainClassName = 'org.f0w.k2i.gui.Main'
version = '1.2.5'
version = '1.2.6'

dependencies {
compile project(':k2i-core')
Expand Down
41 changes: 41 additions & 0 deletions gui/src/main/java/org/f0w/k2i/gui/Controller.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

import static org.f0w.k2i.core.DocumentSourceType.*;
Expand Down Expand Up @@ -67,6 +69,9 @@ public class Controller {
@FXML
private Label selectedFile;

@FXML
private TextArea curlText;

@FXML
private TextField authId;

Expand Down Expand Up @@ -142,6 +147,14 @@ void initialize() {
});
modeComboBox.getSelectionModel().select(new Choice<>(MovieHandler.Type.valueOf(config.getString("mode"))));

curlText.focusedProperty().addListener(o -> {
String plainCurlText = curlText.getText();
configMap.put("curlText", plainCurlText);
parseCurlText(plainCurlText);
});

curlText.setText(config.getString("curlText"));

authId.focusedProperty().addListener(o -> configMap.put("auth", authId.getText()));
authId.setText(config.getString("auth"));

Expand Down Expand Up @@ -224,6 +237,34 @@ void initialize() {
logLevelField.setText(config.getString("log_level"));
}

private void parseCurlText(String plainCurlText) {
Pattern p = Pattern.compile(".*-H 'cookie: ([^']+)'.*--data '(\\w+)=(\\w+)'.*");
Matcher m = p.matcher(plainCurlText);
while (m.find()) {
String cookies = m.group(1);
String authControlKeyString = m.group(2);
String authControlValueString = m.group(3);

ArrayList<String> cookiesList = new ArrayList<>(Arrays.asList(cookies.split("; ")));
HashMap<String, String> cookiesMap = new HashMap<>();
for (String cookie : cookiesList) {
String[] cookieMap = cookie.split("=");
cookiesMap.put(cookieMap[0], cookieMap[1]);
}

authId.setText(cookiesMap.get("id"));
configMap.put("auth", cookiesMap.get("id"));
authSid.setText(cookiesMap.get("sid"));
configMap.put("authSid", cookiesMap.get("sid"));
authSessionId.setText(cookiesMap.get("session-id"));
configMap.put("authSessionId", cookiesMap.get("session-id"));
authControlKey.setText(authControlKeyString);
configMap.put("authControlKey", authControlKeyString);
authControlValue.setText(authControlValueString);
configMap.put("authControlValue", authControlValueString);
}
}

boolean destroy() {
if (clientExecutor.isRunning()) {
if (!confirmStop()) {
Expand Down
2 changes: 1 addition & 1 deletion gui/src/main/java/org/f0w/k2i/gui/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

public class Main extends Application {
private static final int WIDTH = 600;
private static final int HEIGHT = 521;
private static final int HEIGHT = 581;

public static void main(String[] args) {
Application.launch(Main.class, args);
Expand Down
Loading

0 comments on commit 222566b

Please sign in to comment.