Utilizzo di Python per creare programmaticamente 100 gruppi

Ho chiesto al bot GPT e probabilmente ci è andato vicino, ma sono un principiante e apprezzerei qualche consiglio intelligente prima di rompere qualcosa.

Ho un elenco di 100 nomi di gruppi (possono essere delimitati da virgole, o un file, o qualsiasi altra cosa)

Voglio importarli e far sì che abbiano tutti le stesse impostazioni, come elencato qui:

Consenti agli utenti di unirsi liberamente al gruppo (richiede un gruppo visibile pubblicamente)
Consenti agli utenti di lasciare liberamente il gruppo
–nessun membro automatico–

e

Quanto segue dal bot sembra un inizio, ma non mi sento molto a mio agio a lavorarci sopra:

GPT DICE:

Tuttavia, puoi usare l’API di Discourse per creare gruppi programmaticamente. Questo richiederà alcune conoscenze tecniche e familiarità con le API.

Ecco un esempio di base di come potresti farlo in Python usando la libreria requests:

import requests

api_key = 'la_tua_api_key'
api_username = 'il_tuo_username_api'
base_url = 'https://il_tuo_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'Gruppo creato {i}, codice di risposta: {response.status_code}')

Sostituisci 'la_tua_api_key', 'il_tuo_username_api' e 'https://il_tuo_url_discourse.com' con la tua chiave API effettiva, il tuo nome utente API e il tuo URL Discourse.

GRAZIE.

3 Mi Piace

Sembra per lo più vero.

Verifica se funziona per uno o due prima di ciclare su cento!

Puoi consultare Reverse engineer the Discourse API per vedere che ottieni tutte le impostazioni del tuo gruppo come desideri.

Vedi anche Use the Discourse API ruby gem

8 Mi Piace

Qualcosa del genere:

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 "Creato #{group_name}(#{group_id})"
  sleep 1
rescue => e
  puts "ops. Ho avuto un problema con #{name} #{e}"
  sleep 1
end

4 Mi Piace

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