Wygenerowano przez równoległą analizę czterech agentów: stack, architektura, konwencje, integracje, testy, baza danych oraz wykryte problemy i dług techniczny. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
73 lines
3.1 KiB
Markdown
73 lines
3.1 KiB
Markdown
# External Integrations — rank24.pl
|
|
|
|
## DataForSEO API (Primary — Active)
|
|
|
|
- **Purpose**: Google SERP rank checking — replaces direct Google scraping
|
|
- **Client v2**: `autoload/RestClient.php`
|
|
- **Client v3**: `autoload/RestClient3.php`
|
|
- **Credentials**: hardcoded in `autoload/class.Cron.php` (lines ~160, ~262, ~354) — `pyziak84@gmail.com`
|
|
- **Usage**: `\Cron::post_phrases_positions_dfs3()` submits tasks; `\Cron::get_phrases_positions_dfs3()` retrieves results
|
|
- **Auth**: HTTP Basic Auth over HTTPS
|
|
|
|
## Majestic (Active)
|
|
|
|
- **Purpose**: Domain authority metrics — TF (Trust Flow), CF (Citation Flow), backlinks, RefDomains
|
|
- **Data stored in**: `pro_rr_sites_majestic` table
|
|
- **Refresh interval**: `$config['site']['majestic_interval']` = 7 days
|
|
- **Integration point**: `api.php` + relevant factory methods
|
|
|
|
## SEMstorm (Active)
|
|
|
|
- **Purpose**: Keyword traffic / visibility data
|
|
- **Refresh interval**: `$config['site']['semstorm_interval']` = 1 day
|
|
- **Integration point**: `api.php`
|
|
|
|
## Proxy Providers (Disabled)
|
|
|
|
| Provider | API endpoint (stored in config) | Config key | Status |
|
|
|---------|-------------------------------|-----------|--------|
|
|
| ProxyMarket | `http://www.proxymarket.pl/api/get/...` | `proxymarket-api` | disabled |
|
|
| Proxy.Adding.pl | `http://proxy.adding.pl/apiproxy/...` | `adding-api` | disabled |
|
|
|
|
Active proxies are managed internally in the `pro_proxy_servers` DB table.
|
|
|
|
## Internal Proxy Pool
|
|
|
|
- **Table**: `pro_proxy_servers` (columns: `id`, `proxy`, `bg`, `bgd`, `used`, `enabled`)
|
|
- **Rotation logic**: `ORDER BY used ASC LIMIT 1` (least-recently-used)
|
|
- **Backoff**: failed proxy gets `bgd = NOW() + (bg * 15 minutes)` cooldown
|
|
- **Validation**: `\Cron::check_proxy()` pings each proxy, marks invalid ones disabled
|
|
- **Config**: `$config['proxy']['sv-check']` = 2, `$config['proxy']['ht-check']` = 4, `$config['proxy']['s-version']` = 1.218
|
|
|
|
## Direct Google Scraping (Legacy — still in codebase)
|
|
|
|
- **Classes**: `autoload/class.GoogleScraper.php`, `autoload/class.GoogleRank.php`, `autoload/class.GoogleSite.php`
|
|
- `GoogleScraper` — cURL-based scraper with 24 rotating user agents, proxy support, cookie handling
|
|
- `GoogleRank` — orchestrates proxy selection → scrape → parse position → store result
|
|
- Block detection: checks for `"Our systems have detected unusual traffic"`, `"Forbidden"`, etc.
|
|
- Status: likely superseded by DataForSEO but classes remain
|
|
|
|
## PHPMailer / SMTP Email
|
|
|
|
- **Library**: `resources/phpmailer/` (v5.2.15)
|
|
- **Credentials**: SMTP hardcoded in `autoload/class.S.php` (lines ~293-300) — `biuro@project-pro.pl`
|
|
- **Usage**: transactional emails, notifications, organizer email: `poczta@project-dc.pl`
|
|
|
|
## mPDF — PDF Reports
|
|
|
|
- **Library**: `resources/mpdf60/` (v6.0)
|
|
- **Usage**: PDF report generation, rendered via `templates/*/reports-pdf.php`
|
|
|
|
## xajax — AJAX Framework
|
|
|
|
- **Library**: `resources/xajax/`
|
|
- **Handler files**: `functions/xajax-*.php`
|
|
- **Entry point**: `ajax.php`
|
|
|
|
## FTP/SFTP Deployment
|
|
|
|
- **Tool**: VS Code FTP-KR extension
|
|
- **Host**: `host700513.hostido.net.pl`
|
|
- **Remote path**: `/public_html/`
|
|
- **Config files**: `.vscode/ftp-kr.json`, `.vscode/sftp.json` (credentials stored in plaintext)
|