将 CSV 导入 Discourse

您希望完成什么工作?
您好,我想将 CSV 文件作为主题(TOPICS)导入 Discourse。总共有 6 个 CSV 文件,每个文件大约包含 4000 行,也就是约 4000 个主题。每个 CSV 文件有 7 列,我已将其分别设定为主题标题、主题分类、标签和主题内容。

我对此并不精通,因此只希望有人能编写一个脚本,让我在操作简便的情况下自行运行并导入数据。

您希望何时完成?
我不确定这需要多长时间。但在 Discourse 社区论坛调研后,我发现许多帖子提到 GitHub 上已有可用的导入脚本。如果是这样,我认为编写脚本不会超过几个小时。

您能为此任务提供的预算是多少(美元)?
由于我们是一家非营利组织,预算有限。不过,我仍很乐意按小时支付费用。或者,如果您是一家公司,我可以在我的网站上作为创作者提及贵公司的网站,以表达感谢。

我认为你可以使用 Discourse API 来实现这个功能。

我大约为 2 万个主题做过类似的事情,一小时内就能完成。

我当时使用 Java 测试来发起 API 调用,最关键代码如下:

        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.