Utiliser Python pour créer par programmation 100 groupes

J’ai interrogé le bot GPT, et il s’en est probablement approché, mais je suis novice et j’aimerais avoir des éclaircissements avisés avant de tout casser.

J’ai une liste de 100 noms de groupes (peuvent être séparés par des virgules, ou un fichier, ou autre chose)

Je veux les importer et qu’ils aient tous les mêmes paramètres, tels qu’indiqués ici :

Autoriser les utilisateurs à rejoindre le groupe librement (Nécessite un groupe visible publiquement)
Autoriser les utilisateurs à quitter le groupe librement
–pas de membres automatiques–

et

Ce qui suit du bot semble être un début, mais je ne suis pas très à l’aise pour bricoler avec :

GPT DIT :

Cependant, vous pouvez utiliser l’API Discourse pour créer des groupes par programme. Cela nécessitera des connaissances techniques et une familiarité avec les API.

Voici un exemple de base de la façon dont vous pourriez le faire en Python en utilisant la bibliothèque requests :

import requests

api_key = 'votre_clé_api'
api_username = 'votre_nom_utilisateur_api'
base_url = 'https://votre_url_discourse.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'Groupe {i} créé, code de réponse : {response.status_code}')

Remplacez 'votre_clé_api', 'votre_nom_utilisateur_api' et 'https://votre_url_discourse.com' par votre clé API réelle, votre nom d’utilisateur API et votre URL Discourse.

MERCI.

3 « J'aime »

Semble en grande partie vrai.

Vérifiez si cela fonctionne pour un ou deux avant de boucler sur une centaine, cependant !

Vous pouvez consulter Ingénierie inverse de l’API Discourse pour voir que vous obtenez tous les paramètres de votre groupe comme vous le souhaitez.

Voir aussi Use the Discourse API ruby gem

8 « J'aime »

Quelque chose comme ceci :

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 "Créé #{group_name}(#{group_id})"
  sleep 1
rescue => e
  puts "Oups. J'ai eu un problème avec #{name} #{e}"
  sleep 1
end

4 « J'aime »

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