السبب الجذري: BASE_URL واحد يشير إلى marketing_engine/index.php، بينما
`process_organic_post` و`log` موجودان في social_worker.php وحده. فكانا
يقعان على `default` فيعود {"status":"error"} بكود HTTP 200 — بلا استثناء
ولا سجل. أثره: processOrganicPost يعود null فيفشل شرط generated_comment في
FacebookBotService:137 → لا تعليق عضوي يُنشر أبداً، وكل logMessage يُبتلع
صامتاً فلم يظهر العطل في أي سجل. (تعليق العميل سطر 10 كان يذكر
social_worker.php أصلاً — الرابط هو ما خالف النية.)
- توجيه لكل أمر حسب موضعه: index.php لـ get_task/complete_task/fail_task/
evaluate_posts · social_worker.php لـ process_organic_post/log
- evaluate_posts: index.php يرد بلا حقل `data`، والعميل كان يشترطه فيعود
null في كل نجاح. النجاح صار يُقاس بـ status
- ترميز URL لكل المعاملات: رسالة خطأ فيها & أو # كانت تشقّ جسم
x-www-form-urlencoded وتفسد صفّ المهمة
- كل رد غير 200 أو status != success يُسجَّل في Logcat بدل الصمت
- المضيف إلى BuildConfig.BACKEND_HOST في البوتين (gradle) — لا نطاق مشفّر
في الكود، فتبديله لأي علامة أخرى سطر واحد
- val لا const val لقيم BuildConfig (ليست ثوابت وقت ترجمة في كوتلن)
لم يُبنَ بعد. لم يُمسّ أي PHP: الباك إند حيّ.
ما زال مفتوحاً بقرار المالك: (1) فحص X-Bot-Token معطَّل بتعليق في
social_worker.php:14 و index.php:17 والتوكن placeholder → النقطتان
مفتوحتان؛ (2) طابور social_tasks الذي يغذّيه schedule_manager بلا مستهلك.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
61 lines
1.9 KiB
Kotlin
61 lines
1.9 KiB
Kotlin
plugins {
|
||
alias(libs.plugins.android.application)
|
||
alias(libs.plugins.kotlin.android)
|
||
}
|
||
|
||
android {
|
||
namespace = "com.siro.socialmedia_bot"
|
||
compileSdk = 36
|
||
|
||
defaultConfig {
|
||
applicationId = "com.siro.socialmedia_bot"
|
||
minSdk = 21
|
||
targetSdk = 36
|
||
versionCode = 1
|
||
versionName = "1.0"
|
||
|
||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||
|
||
// مضيف الباك إند في مكان واحد: تبديله عند نسخ البوت لعلامة أخرى
|
||
// (مثل انطلق على api.intaleqapp.com) يصير سطراً واحداً لا بحثاً في الكود.
|
||
buildConfigField("String", "BACKEND_HOST", "\"https://jordan-siro.intaleqapp.com\"")
|
||
// ⚠️ فحص هذا التوكن معطَّل على السيرفر حالياً (social_worker.php سطر 14
|
||
// و marketing_engine/index.php سطر 17) — نقطتا النهاية مفتوحتان فعلياً.
|
||
buildConfigField("String", "BOT_TOKEN", "\"YOUR_SECRET_BOT_TOKEN\"")
|
||
}
|
||
|
||
buildTypes {
|
||
release {
|
||
isMinifyEnabled = false
|
||
proguardFiles(
|
||
getDefaultProguardFile("proguard-android-optimize.txt"),
|
||
"proguard-rules.pro"
|
||
)
|
||
}
|
||
}
|
||
compileOptions {
|
||
sourceCompatibility = JavaVersion.VERSION_11
|
||
targetCompatibility = JavaVersion.VERSION_11
|
||
}
|
||
kotlinOptions {
|
||
jvmTarget = "11"
|
||
}
|
||
buildFeatures {
|
||
viewBinding = true
|
||
buildConfig = true
|
||
}
|
||
}
|
||
|
||
dependencies {
|
||
|
||
implementation(libs.androidx.core.ktx)
|
||
implementation(libs.androidx.appcompat)
|
||
implementation(libs.material)
|
||
|
||
// Coroutines – required by the bot services
|
||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
|
||
|
||
testImplementation(libs.junit)
|
||
androidTestImplementation(libs.androidx.junit)
|
||
androidTestImplementation(libs.androidx.espresso.core)
|
||
} |