qoder-autopilot 0.2.1__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/PKG-INFO +1 -1
  2. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/pyproject.toml +1 -1
  3. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/config.py +20 -2
  4. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/.gitignore +0 -0
  5. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/LICENSE +0 -0
  6. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/README.md +0 -0
  7. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/docs/architecture.md +0 -0
  8. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/examples/basic_usage.py +0 -0
  9. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/examples/parallel_mode.py +0 -0
  10. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/__init__.py +0 -0
  11. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/__main__.py +0 -0
  12. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/browser/__init__.py +0 -0
  13. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/browser/camoufox.py +0 -0
  14. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/browser/window_tiler.py +0 -0
  15. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/captcha/__init__.py +0 -0
  16. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/captcha/ai_vision.py +0 -0
  17. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/captcha/manual.py +0 -0
  18. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/captcha/opencv_detect.py +0 -0
  19. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/captcha/slider.py +0 -0
  20. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/captcha/solver.py +0 -0
  21. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/cli.py +0 -0
  22. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/credentials.py +0 -0
  23. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/deploy.py +0 -0
  24. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/errors.py +0 -0
  25. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/first_run.py +0 -0
  26. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/identity.py +0 -0
  27. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/logger.py +0 -0
  28. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/ninerouter.py +0 -0
  29. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/oauth.py +0 -0
  30. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/otp.py +0 -0
  31. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/register.py +0 -0
  32. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/temp_mail.py +0 -0
  33. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/user_config.py +0 -0
  34. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/worker_template/package.json +0 -0
  35. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/worker_template/schema.sql +0 -0
  36. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/worker_template/scripts/setup.sh +0 -0
  37. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/worker_template/src/config.js +0 -0
  38. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/worker_template/src/handlers/api.js +0 -0
  39. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/worker_template/src/handlers/email.js +0 -0
  40. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/worker_template/src/index.js +0 -0
  41. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/worker_template/src/utils.js +0 -0
  42. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/src/qoder_autopilot/worker_template/wrangler.toml.example +0 -0
  43. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/tests/conftest.py +0 -0
  44. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/tests/test_config.py +0 -0
  45. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/tests/test_errors.py +0 -0
  46. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/tests/test_identity.py +0 -0
  47. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/tests/test_oauth.py +0 -0
  48. {qoder_autopilot-0.2.1 → qoder_autopilot-0.2.2}/tests/test_otp.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qoder-autopilot
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: Automated Qoder account registration with anti-detect browser, captcha solving (AI + OpenCV), and 9Router OAuth integration.
5
5
  Project-URL: Homepage, https://github.com/Daivageralda/qoder-autopilot
6
6
  Project-URL: Repository, https://github.com/Daivageralda/qoder-autopilot
@@ -9,7 +9,7 @@ build-backend = "hatchling.build"
9
9
  # ── Project Metadata ──────────────────────────────
10
10
  [project]
11
11
  name = "qoder-autopilot"
12
- version = "0.2.1"
12
+ version = "0.2.2"
13
13
  description = "Automated Qoder account registration with anti-detect browser, captcha solving (AI + OpenCV), and 9Router OAuth integration."
14
14
  readme = "README.md"
15
15
  license = "MIT"
@@ -17,6 +17,7 @@ CLI configuration:
17
17
  """
18
18
 
19
19
  import os
20
+ import platform
20
21
  from pathlib import Path
21
22
 
22
23
  from pydantic import Field
@@ -32,6 +33,23 @@ PACKAGE_DIR = Path(__file__).parent
32
33
  PROJECT_DIR = PACKAGE_DIR.parent.parent # src/../.. = project root
33
34
 
34
35
 
36
+ def _default_ninerouter_db() -> str:
37
+ """Return the default 9Router SQLite database path based on the current OS.
38
+
39
+ Reference: https://www.npmjs.com/package/9router (Data Location section)
40
+ - macOS/Linux: ~/.9router/db/data.sqlite
41
+ - Windows: %APPDATA%/9router/db/data.sqlite
42
+ - Docker: /app/data/db/data.sqlite (user sets manually)
43
+ """
44
+ if platform.system() == "Windows":
45
+ appdata = os.environ.get("APPDATA", "")
46
+ if appdata:
47
+ return os.path.join(appdata, "9router", "db", "data.sqlite")
48
+ # Fallback kalau APPDATA ga ada (sangat jarang)
49
+ return os.path.join(str(Path.home()), "AppData", "Roaming", "9router", "db", "data.sqlite")
50
+ return "~/.9router/db/data.sqlite"
51
+
52
+
35
53
  # ═══════════════════════════════════════════════════════════════════════════════
36
54
  # SETTINGS CLASS
37
55
  # ═══════════════════════════════════════════════════════════════════════════════
@@ -129,8 +147,8 @@ class Settings(BaseSettings):
129
147
  description="9Router password (optional, not needed for DB insert)",
130
148
  )
131
149
  ninerouter_db: str = Field(
132
- default="~/.9router/db/data.sqlite",
133
- description="Path to 9Router SQLite database",
150
+ default_factory=_default_ninerouter_db,
151
+ description="Path to 9Router SQLite database (OS-aware default)",
134
152
  )
135
153
 
136
154
  # ── AI Captcha (optional) ─────────────────────────────────────────────
File without changes