The discussion revolves around issues with import scripts in a custom forum. Matias_Hernandez is having trouble relating topics and posts using the create_posts method. gerhard suggests rewriting the function, pointing out that the topic_lookup_from_imported_post_id() method returns a hash, and provides a revised code snippet.
paultaylor is experiencing a separate issue, trying to create topics owned by a particular user rather than the admin user running the script. They reference a related discussion, and ask for clarification on how to pass the user ID to the API, specifically whether to use the id column or the username column of the users table.
I’m writing an import script for a custom forum.
The importing of categories and users works good, but the script (using the create_posts method) is not able to build the relation between the topic and the replies.
The relevant code
//Topics
create_posts(threads, total: total) do |t|
source_user_id = @usernamesMap[t["username"]]
{
id: t["id"],
user_id: user_id_from_imported_user_id(source_user_id) || Discourse::SYSTEM_USER_ID,
raw: t["Thread_Description"],
created_at: t["created_at"],
posts_count: t["count"],
category: category_id_from_imported_category_id(t["Topic_ID"]),
title: t["title"]
}
end
// Replies
create_posts(posts, total: total) do |t|
next unless topic = topic_lookup_from_imported_post_id(t["Thread_ID"])
source_user_id = @usernamesMap[t["username"]]
opts = {
id: t['id'],
user_id: user_id_from_imported_user_id(source_user_id) || Discourse::SYSTEM_USER_ID,
raw: t["Post_Description"],
created_at: t["created_at"],
title: t["title"],
topic_id: topic_lookup_from_imported_post_id(t["Thread_ID"]), //This is not working correctly
reply_to_post_number: topic_lookup_from_imported_post_id(t["Thread_ID"])
}
end
Ich versuche herauszufinden, wie man ein Thema erstellt, das einem bestimmten Benutzer und nicht dem Admin-Benutzer gehört, der das Skript ausführt.
Dein Beitrag lässt darauf schließen, dass man einfach die user_id an die API übergeben kann, auch wenn dies nicht dokumentiert ist. Bei mir scheint es jedoch nicht zu funktionieren. Ist das der Fall? Und falls ja, bezieht sich user_id auf die Spalte id der users-Tabelle oder auf die Spalte username?