استيراد CSV إلى Discourse

ما الذي تود إنجازه؟
مرحبًا، أرغب في استيراد ملفات CSV إلى Discourse كـ مواضيع (TOPICS). لدينا 6 ملفات CSV، يحتوي كل منها على حوالي 4000 صف، أو بعبارة أخرى 4000 موضوع. يحتوي كل ملف CSV على 7 أعمدة، قمت بإنشائها خصيصًا لتعيينها كعنوان الموضوع، فئة الموضوع، الوسوم، ومحتوى الموضوع.

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

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

ما هو ميزانيتك بالدولار الأمريكي (USD) التي يمكنك تقديمها لهذه المهمة؟
بما أننا منظمة غير ربحية، تمامًا غير ربحية، فإن ميزانيتنا محدودة. ومع ذلك، أنا سعيد بدفع مقابل ساعات عملك. أو إذا كنت شركة، فسأذكر موقعك الإلكتروني على موقعي بصفتي منشئًا، حتى تحصل على الفضل المناسب.

أعتقد أنه يمكنك استخدام واجهة برمجة تطبيقات Discourse لهذا الغرض.

لقد قمت بنفس الأمر مع حوالي 20 ألف موضوع، ويمكن إنجاز ذلك في ساعة.

كنت أستخدم اختبار JAVA لإجراء استدعاءات الواجهة، وأهم جزء من الكود هو ما يلي:

        CloseableHttpClient client = HttpClients.createDefault();

        HttpPost httpPost = new HttpPost("https://www.ossez.com/posts.json");
        httpPost.setHeader(HttpHeaders.CONTENT_TYPE, "application/json; charset=UTF-8");
        httpPost.setHeader("Api-Key", "XXXXXX");
        httpPost.setHeader("Api-Username", "XXXXXX");

        TopicRequest topicRequest = new TopicRequest();
        topicRequest.setTitle(bbsOssezForumPost.getSubject());
        topicRequest.setRaw(postCtx);
        topicRequest.setCreated_at(new DateTime(bbsOssezForumPost.getDateline() * 1000L).toString() );
        topicRequest.setCategory(30);

        StringEntity postingString = new StringEntity(new Gson().toJson(topicRequest),  StandardCharsets.UTF_8);

        httpPost.setEntity(postingString);

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