استخدام بايثون لإنشاء 100 مجموعة برمجيًا

لقد سألت روبوت GPT، وربما اقترب من الإجابة، لكني مبتدئ وأود الحصول على رؤى ذكية قبل أن أفسد شيئًا ما.

لدي قائمة بـ 100 اسم مجموعة (يمكن أن تكون مفصولة بفواصل، أو ملف، أو أي شيء آخر)

أريد استيرادها وجعلها جميعًا تحصل على نفس الإعدادات، كما هو مدرج هنا:

السماح للمستخدمين بالانضمام إلى المجموعة بحرية (يتطلب مجموعة مرئية للعامة)
السماح للمستخدمين بمغادرة المجموعة بحرية
–لا أعضاء تلقائيين–

و

ما يلي من الروبوت يبدو وكأنه بداية، ولكني لست مرتاحًا حقًا لاختراقه:

يقول روبوت GPT:

ومع ذلك، يمكنك استخدام واجهة برمجة تطبيقات Discourse لإنشاء مجموعات برمجيًا. سيتطلب هذا بعض المعرفة التقنية والإلمام بواجهات برمجة التطبيقات.

إليك مثال أساسي لكيفية القيام بذلك في Python باستخدام مكتبة requests:

import requests

api_key = 'your_api_key'
api_username = 'your_api_username'
base_url = 'https://your_discourse_url.com'

headers = {
    'Api-Key': api_key,
    'Api-Username': api_username,
}

for i in range(1, 101):
    data = {
        'name': f'group_{i}',
        'visible': True,
        'automatic_membership_email_domains': 'example.com'
    }
    response = requests.post(f'{base_url}/admin/groups', headers=headers, data=data)
    print(f'Created group {i}, response code: {response.status_code}')

استبدل 'your_api_key' و 'your_api_username' و 'https://your_discourse_url.com' بمفتاح API الفعلي واسم المستخدم لواجهة برمجة التطبيقات وعنوان URL الخاص بـ Discourse.

شكرًا.

3 إعجابات

يبدو صحيحًا في الغالب.

تحقق مما إذا كان يعمل لواحد أو اثنين قبل أن تقوم بتكراره لمائة!

يمكنك التحقق من الهندسة العكسية لواجهة برمجة تطبيقات Discourse لمعرفة أنك تحصل على جميع إعدادات مجموعتك كما تريدها.

انظر أيضًا Use the Discourse API ruby gem

8 إعجابات

شيء كهذا:

group_names.each do |name|
  begin
  response = client.create_group(name: name,
    visibility_level: 0,
    members_visibility_level: 0,
    mentionable_level: 3,
    messageable_level: 3,
    public_exit: true,
    public_admission: true
  )
  group_id = response["basic_group"]["id"]
  group_name =response["basic_group"]["name"]
  puts "Created #{group_name}(#{group_id})"
  sleep 1
rescue => e
  puts "oops. Had a problem with #{name} #{e}"
  sleep 1
end

4 إعجابات

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