166 lines
5.1 KiB
PHP
166 lines
5.1 KiB
PHP
<?php
|
|
|
|
require_once 'doctrine-config.php';
|
|
|
|
use Entity\Werbenetzwerk;
|
|
use Entity\User;
|
|
use Entity\Kampagne;
|
|
|
|
try {
|
|
// Werbenetzwerk-Entity holen
|
|
// Werbenetzwerk-User holen
|
|
$werbenetzwerkUser = $entityManager->getRepository(User::class)->findByUsername('adcity-eu');
|
|
|
|
if (!$werbenetzwerkUser) {
|
|
echo "werbenetzwerkUser-Daten nicht gefunden.\n";
|
|
exit(1);
|
|
}
|
|
|
|
$werbenetzwerk = $entityManager->getRepository(Werbenetzwerk::class)->findByUser($werbenetzwerkUser);
|
|
|
|
if (!$werbenetzwerk) {
|
|
echo "Werbenetzwerk-Daten nicht gefunden.\n";
|
|
exit(1);
|
|
}
|
|
|
|
|
|
|
|
if (!$werbenetzwerkUser) {
|
|
echo "Kein Werbenetzwerk-User gefunden.\n";
|
|
exit(1);
|
|
}
|
|
|
|
// API-Parameter vorbereiten
|
|
$apiUrl = 'https://www.adcity.eu/interface/';
|
|
$params = [
|
|
'typ' => 'forcedtextlink',
|
|
'id' => $werbenetzwerk->getUserId(),
|
|
'pw' => $werbenetzwerk->getInterfacepasswort(),
|
|
'uebrig' => 20,
|
|
'reload' => 99999,
|
|
'verguetung' => 0.0001,
|
|
'ma' => 99999
|
|
];
|
|
|
|
$fullUrl = $apiUrl . '?' . http_build_query($params);
|
|
|
|
// API-Anfrage durchführen
|
|
$response = file_get_contents($fullUrl);
|
|
|
|
if ($response === false) {
|
|
echo "Fehler beim Abrufen der API-Daten.\n";
|
|
exit(1);
|
|
}
|
|
|
|
echo "Response received:\n";
|
|
echo $response . "\n\n";
|
|
|
|
// Flatfile-Response parsen (alle Kampagnen pipe-getrennt in einer Zeile)
|
|
$parts = explode('|', trim($response));
|
|
|
|
$kampagnenCount = 0;
|
|
$updatedCount = 0;
|
|
$createdCount = 0;
|
|
|
|
// Durch alle Kampagnen iterieren (je 5, 6 oder 7 Felder pro Kampagne)
|
|
$i = 0;
|
|
while ($i < count($parts)) {
|
|
// Mindestens 5 Felder erforderlich
|
|
if ($i + 4 >= count($parts)) {
|
|
break;
|
|
}
|
|
|
|
// Erste 5 Felder auslesen
|
|
$kid = $parts[$i];
|
|
$linktext = $parts[$i + 1];
|
|
$reload = (int) $parts[$i + 2];
|
|
$uebrig = (int) $parts[$i + 3];
|
|
$verdienst = (float) $parts[$i + 4];
|
|
|
|
// Prüfen ob MA-Feld vorhanden ist (6. Feld)
|
|
$ma = 0;
|
|
$mailtext = null;
|
|
$fieldsConsumed = 5;
|
|
|
|
// Heuristik: Wenn das nächste Feld numerisch ist und klein, ist es wahrscheinlich MA
|
|
if ($i + 5 < count($parts) && is_numeric($parts[$i + 5]) && $parts[$i + 5] < 1000) {
|
|
$ma = (int) $parts[$i + 5];
|
|
$fieldsConsumed = 6;
|
|
|
|
// Prüfen ob Nachrichtentext vorhanden ist (7. Feld)
|
|
if ($i + 6 < count($parts) && !is_numeric($parts[$i + 6])) {
|
|
$mailtext = $parts[$i + 6];
|
|
$fieldsConsumed = 7;
|
|
}
|
|
}
|
|
|
|
$i += $fieldsConsumed;
|
|
$kampagnenCount++;
|
|
|
|
// Link-URL und Bild-URL generieren (USERID und SEITENID werden später beim Einbau ersetzt)
|
|
$destUrl = "https://www.adcity.eu/codes/forcedtextlinkklick.php?id={USERID}&bid=$kid&aid={SEITENID}";
|
|
|
|
echo "Processing: $linktext (KID: $kid, MA: $ma, Reload: $reload, Uebrig: $uebrig)\n";
|
|
|
|
// Prüfen ob Kampagne bereits existiert (anhand user_id, KID und is_tr=1)
|
|
$existingKampagne = $entityManager->getRepository(Kampagne::class)
|
|
->findOneBy([
|
|
'user' => $werbenetzwerkUser,
|
|
'kid' => $kid,
|
|
'is_tr' => true
|
|
]);
|
|
|
|
if ($existingKampagne) {
|
|
// Kampagne aktualisieren (verguetung, reload, uebrig)
|
|
$existingKampagne->setVerguetung($verdienst);
|
|
$existingKampagne->setReload($reload);
|
|
$existingKampagne->setUebrig($uebrig);
|
|
$existingKampagne->setLinktext($linktext);
|
|
$existingKampagne->setMa($ma);
|
|
if ($mailtext) {
|
|
$existingKampagne->setMailtext($mailtext);
|
|
$existingKampagne->setIsMail(true);
|
|
}
|
|
|
|
$entityManager->persist($existingKampagne);
|
|
$updatedCount++;
|
|
echo " → Updated existing campaign (verguetung: $verdienst, reload: $reload, uebrig: $uebrig)\n";
|
|
} else {
|
|
// Neue Kampagne erstellen
|
|
$kampagne = new Kampagne();
|
|
$kampagne->setDestUrl($destUrl);
|
|
$kampagne->setKid($kid);
|
|
$kampagne->setLinktext($linktext);
|
|
$kampagne->setMa($ma);
|
|
$kampagne->setReload($reload);
|
|
$kampagne->setVerguetung($verdienst);
|
|
$kampagne->setUebrig($uebrig);
|
|
$kampagne->setIsFb(false);
|
|
$kampagne->setIsTr(true);
|
|
$kampagne->setIsMail(false);
|
|
if ($mailtext) {
|
|
$kampagne->setMailtext($mailtext);
|
|
$kampagne->setIsMail(true);
|
|
}
|
|
$kampagne->setUser($werbenetzwerkUser);
|
|
|
|
$entityManager->persist($kampagne);
|
|
$createdCount++;
|
|
echo " → Created new campaign\n";
|
|
}
|
|
}
|
|
|
|
$entityManager->flush();
|
|
|
|
echo "\n=== Summary ===\n";
|
|
echo "Total campaigns processed: $kampagnenCount\n";
|
|
echo "Created: $createdCount\n";
|
|
echo "Updated: $updatedCount\n";
|
|
echo "\nCron job completed successfully.\n";
|
|
|
|
} catch (\Exception $e) {
|
|
echo "Fehler: " . $e->getMessage() . "\n";
|
|
echo $e->getTraceAsString() . "\n";
|
|
exit(1);
|
|
}
|