سكربت استيراد XenForo استورد المستخدمين المحظورين والمواضيع والمنشورات المحذوفة برمجياً

استخدمت هذا السكربت اليوم وعمل بشكل جيد. المشكلة الوحيدة التي واجهتها كانت أنه استورد جميع المستخدمين المحظورين والمشاركات/المواضيع المحذوفة برمجياً (مخفية) من Xenforo. هذا جعل مئات المشاركات/المواضيع المزعجة ظاهرة في Discourse بعد الاستيراد.

إذا كان لديك الكثير من المشاركات/المواضيع المزعجة التي لا ترغب في استيرادها، فإليك بعض التغييرات في SQL التي يجب عليك مراعاتها في سكربت “xenforo.rb”:

  1. أضف جملة WHERE أدناه لضمان استيراد المستخدمين النشطين وغير المحظورين فقط.
       def import_users
        puts '', "creating users"

        total_count = mysql_query("SELECT count(*) count FROM #{TABLE_PREFIX}user;").first['count']

        batches(BATCH_SIZE) do |offset|
          results = mysql_query(
            "SELECT user_id id, username, email, custom_title title, register_date created_at,
                    last_activity last_visit_time, user_group_id, is_moderator, is_admin, is_staff
             FROM #{TABLE_PREFIX}user
             WHERE user_state = 'valid' AND is_banned = 0
             LIMIT #{BATCH_SIZE}
             OFFSET #{offset};")
  1. عدّل جملة WHERE أدناه لضمان استيراد المواضيع/المشاركات المرئية فقط.
       def import_posts
        puts "", "creating topics and posts"

        total_count = mysql_query("SELECT count(*) count from #{TABLE_PREFIX}post").first["count"]

        posts_sql = "
            SELECT p.post_id id,
                   t.thread_id topic_id,
                   #{@prefix_as_category ? 't.prefix_id' : 't.node_id'} category_id,
                   t.title title,
                   t.first_post_id first_post_id,
                   p.user_id user_id,
                   p.message raw,
                   p.post_date created_at
            FROM #{TABLE_PREFIX}post p,
                 #{TABLE_PREFIX}thread t
            WHERE p.thread_id = t.thread_id AND p.message_state = 'visible' AND t.discussion_state = 'visible'
            ORDER BY p.post_date
            LIMIT #{BATCH_SIZE}" # needs OFFSET
5 إعجابات

بالتأكيد، شكرًا لك. هل يمكننا دمج هذه التغييرات في سكريبتنا @techAPJ؟

4 إعجابات

تم ذلك عبر:

شكرًا لك على النصائح @msinger. :+1:

6 إعجابات

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