البحث عن عناوين روابط الصور في المواضيع

لقد بحثت وقرأت البحث عن المحتوى بفعالية، ولكن لم أجد إجابة.

لدي منصة Discourse حيث أنا مشرف (ليس لدي وصول إلى الواجهة الخلفية). قام شخص ما بنشر العديد من المواضيع حيث تم ربط الصور خارجيًا بمزود استضافة طرف ثالث (في هذه الحالة، مستندات Google). لقد غادر الشركة، وجميع روابط الصور هذه معطلة الآن.

يمكنني (وقد فعلت) المرور يدويًا عبر بعض منشوراتهم للعثور على الصور المعطلة وإصلاحها (بفضل أرشيف الإنترنت). لكن هذا شاق. أود الحصول على قائمة بكل موضوع يحتوي على عناوين URL للصور المعطلة هذه حتى نتمكن من إصلاحها بشكل جماعي، عن طريق إعادة تحميل الصور إلى الموقع.

يمكنني بالطبع استخدام البحث للعثور على with:images #tutorials، ولكن لا يمكنني البحث داخل عناوين URL للصور عن (على سبيل المثال) googleusercontent. هل هذا ممكن، بدون وصول إلى واجهة برمجة التطبيقات (API) أو الواجهة الخلفية rake؟

إعجابَين (2)

يمكن للمسؤول إنشاء استعلام مستكشف البيانات الذي يعثر على تلك المشاركات.

ولكن إذا أراد المسؤول ألا يحدث هذا، فسيتعين عليه تشغيل تنزيل الصور محليًا. إنها مشكلة خلقوها بأنفسهم وليس من وظيفة المشرف حقًا إصلاحها.

3 إعجابات

هل هذا يعني أنه لا يمكنك تثبيت مستكشف البيانات أيضًا؟ ستكون هذه هي الأداة المفضلة لذلك.

كيف يتم تنسيق الصور في المنشورات؟ هل تعرض فقط عنوان URL العادي، أم تستخدم [img]، <img>، ![](url)…؟

فقط لتوضيح مشكلتك. يمكن أن يحتوي المنشور على عنوان URL لصورة معطلة، مثل https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNaW4QQ43EQ-8qqQPntDP7so6Cg19PVSLN9bXv3ZhQqHZtomb8CGY3XArx3GIaZ04d0p9K3V-buaf73-M5dpq2wPuvnjsapStHdTkTVoPj2q9RAmcdczmE12HYz57PNOdVuft1/s1600-h/eastern_coastal_pcn_ap.jpg

يحتوي المنشور على عنوان URL،

ولكنه يُرجع شيئًا مثل

<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNaW4QQ43EQ-8qqQPntDP7so6Cg19PVSLN9bXv3ZhQqHZtomb8CGY3XArx3GIaZ04d0p9K3V-buaf73-M5dpq2wPuvnjsapStHdTkTVoPj2q9RAmcdczmE12HYz57PNOdVuft1/s1600-h/eastern_coastal_pcn_ap.jpg" target="_blank" rel="noopener" class="onebox">
    <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNaW4QQ43EQ-8qqQPntDP7so6Cg19PVSLN9bXv3ZhQqHZtomb8CGY3XArx3GIaZ04d0p9K3V-buaf73-M5dpq2wPuvnjsapStHdTkTVoPj2q9RAmcdczmE12HYz57PNOdVuft1/s1600-h/eastern_coastal_pcn_ap.jpg" width="" height="" loading="lazy">
</a>

والذي لا يحتوي على أي نص يمكن البحث عنه.

هل هذا ما يحدث؟

3 إعجابات

صحيح، لا يمكنني تثبيت الإضافات.

إنها مُنسقة باستخدام تنسيق markdown القياسي ![](url) حيث يكون googleusercontent جزءًا من عنوان URL. على سبيل المثال:

![|312x416](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeWkc1cZH8jtNveMhet36oWsLDlUxA-2QadGepx8Uuw1naq6vx5JAd6oyQ2pSmLJkKN97ZnTlV2txMqdNb0QMDCqV0xu-0xOFzePw2hnrNPUNbHoHMWh60KJpP3QkLq2E3Gp0-cKrf3tSWjML8oIQ3I9JQ?key=7YTVKNzk_oQvl95Fd_BKLQ)

إذا بحثت عن googleusercontent، فلن يتم إرجاع أي نتائج. ومع ذلك، يمكنني العثور على مشاركات تحتوي على صور، مشار إليها بعنوان URL يحتوي على النص googleusercontent. لا أعرف ما إذا كانت هذه مشكلة أو ميزة لا يبحث فيها discourse في عناوين URL لروابط الصور المنسقة بتنسيق markdown.

إعجاب واحد (1)

أعتقد أن البحث في Discourse يتم على المنشور المعالج، والذي يحتوي على HTML.
يتجاهل البحث علامات HTML، وعلامات IMG لا تحتوي على نص، ومن هنا استحالة إرجاع ما تبحث عنه.

لماذا لا يمكنك استخدام واجهة برمجة التطبيقات (API)؟
يمكنك إنشاء برنامج نصي محلي يقوم بتشغيل استعلام بحث لمنشورات المستخدم التي تحتوي على صور، والتكرار عبر النتائج (ببطء كافٍ لعدم الوصول إلى حدود المعدل، وأيضًا يمكنك الاستعلام عن المنشورات الخام إذا لزم الأمر) وإخراج المنشورات التي تحتوي على السلسلة الفرعية التي تبحث عنها.

ربما هناك حل أبسط، ولكن هذا ما سأفعله في حالة عدم وجود خيار آخر. بسيط جدًا للقيام به.

لأن المسؤول لن يعطيها مفتاح واجهة برمجة التطبيقات؟

لأنها ليست مبرمجة؟

يبدو أنها مشكلة أنشأها المسؤول وغير مهتم بحلها.

إعجاب واحد (1)

نعم، أعني، لا يلزم وجود مفتاح لنقاط نهاية البحث والنشر لواجهة برمجة التطبيقات المطلوبة لاقتراحي، ما لم أكن مخطئًا؟

وبالتأكيد، سيتطلب الأمر معرفة أساسية بالبرمجة بشكل مثالي، حتى لو كان بإمكان الذكاء الاصطناعي إخراج نص برمجي أساسي جيد.

المشكلة المذكورة بالتأكيد ليست مثالية لحلها بدون وصول المسؤول.

إعجابَين (2)

لم أطلب مفتاح API (بيروقراطية)، ولم أكن على علم بأنني سأحتاج إليه للقيام بما اعتبرته استعلام بحث “بسيط”. لم أكن أعرف أنه لا يلقي نظرة على علامات HTML في المحتوى. لذا تم تفسير ذلك، شكراً لك.

إنها ليست مشكلة أنشأها المسؤولون. إنها مجرد حالة لم يكن المسؤولون ومنشئو المحتوى على علم بها حتى غادر شخص ما الشركة، وتم إيقاف الوصول إلى مستندات Google لهذا الحساب، مما أدى إلى اختفاء/تعطل الصور.

أتفق على أنه يمكنني طلب مفتاح API، أو كتابة شيء محليًا لكشط الموقع والعثور على المشاركات المخالفة. سأفعل أحد هذه الأشياء.

شكراً على الردود. :pray:

إعجابَين (2)

لا تحتاج إلى مفتاح API لإجراء عمليات البحث.

لست متأكدًا من أن وجود مفتاح API يمكن أن يساعدك في حل مشكلتك بسهولة أكبر.

إليك مثال لبرنامج نصي بلغة :robot: Python يقوم بتكرار مشاركاتي (مشاركة واحدة كل 3 ثوانٍ) على meta ويعيد تلك التي تحتوي على السلسلة الفرعية upload:// في المحتوى الخام:

import requests
import time

def fetch_posts(page):
    url = f"https://meta.discourse.org/search.json?q=%40cocoquark&page={page}"
    response = requests.get(url)
    return response.json()

def fetch_post_content(post_id):
    url = f"https://meta.discourse.org/posts/{post_id}/raw"
    response = requests.get(url)
    return response.text

def process_posts():
    page = 1
    while True:
        print(f"page {page}")
        data = fetch_posts(page)
        
        for post in data['posts']:
            content = fetch_post_content(post['id'])
            if "upload://" in content:
                print("https://meta.discourse.org/posts/" + str(post['id']))
            time.sleep(3)        
        
        if len(data['posts']) < 50:
            print("No more results.")
            break
        
        page += 1

if __name__ == "__main__":
    process_posts()
Output
page 1
https://meta.discourse.org/posts/1682015
https://meta.discourse.org/posts/1677389
https://meta.discourse.org/posts/1679834
https://meta.discourse.org/posts/1678673
https://meta.discourse.org/posts/1679833
https://meta.discourse.org/posts/1678629
https://meta.discourse.org/posts/1678229
https://meta.discourse.org/posts/1676531
https://meta.discourse.org/posts/1674982
https://meta.discourse.org/posts/1670250
https://meta.discourse.org/posts/1674421
https://meta.discourse.org/posts/1671959
https://meta.discourse.org/posts/1674355
https://meta.discourse.org/posts/1673357
https://meta.discourse.org/posts/1669322
https://meta.discourse.org/posts/1665519
page 2
https://meta.discourse.org/posts/1674153
https://meta.discourse.org/posts/1670613
https://meta.discourse.org/posts/1666606
https://meta.discourse.org/posts/1674992
https://meta.discourse.org/posts/1672811
https://meta.discourse.org/posts/1672050
https://meta.discourse.org/posts/1686260
https://meta.discourse.org/posts/1684497
https://meta.discourse.org/posts/1680692
https://meta.discourse.org/posts/1675012
page 3
No more results.
إعجابَين (2)

رائع، شكراً @Canapin!
أنا أحب القليل من بايثون :pray:
لقد حددت الآن جميع المواضيع التي تحتوي على صور مكسورة بمساعدتك.
أقدر ذلك كثيراً.

3 إعجابات

لا تحتاج إلى مفتاح API لإجراء بحث بسيط، لكنني لا أرى فائدة من “استخدام API” لإجراء بحث بسيط.

ربما أسأت فهم المشكلة. بدا الأمر وكأنه مشكلة لم تكن لتحدث لو كان خيار “تنزيل الصور عن بعد إلى المحلية” قيد التشغيل، وهو قيد التشغيل افتراضيًا. ولكن من المحتمل أيضًا أنه تم إيقافه لسبب بيروقراطي قام به المسؤول. أعتقد أنه سيكون من الصعب جدًا حل مشكلتك بدون إضافة مستكشف البيانات أو الوصول إلى Rails.

يا رجل! أنت رائع!

3 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.