• [^] # Re: Toujours pas convaincu

    Posté par (site web personnel) . En réponse à la dépêche Développer une interface web avec le toolkit Atlas (1/2). Évalué à 2.

    Voilà le code d'une application un peu plus évoluée. Il s'agit d'un chatroom basique.

    import atlastk, threading
    BODY="""
    <input data-xdh-onevent="Submit"/>
    <fieldset>
     <legend>messages</legend>
     <ul id="Messages"/>
    </fieldset>
    """
    messages = []
    lock = threading.Lock()
    class Chat:
     def __init__(self):
     self.next = 0 #index du prochain message.
    def add_message(message):
     global messages, lock
     lock.acquire()
     messages.append(message)
     lock.release()
    def get_messages(index):
     global lock
     html = ""
     lock.acquire()
     for i in range(len(messages)-1,index-1,-1):
     html += f"<li>{messages[i]}</li>"
     lock.release()
     return html, len(messages)
    def display_messages(index,dom):
     html, new_index = get_messages(index)
     if html:
     dom.begin("Messages",html)
     return new_index
    def ac_connect(chat,dom):
     dom.inner("", BODY) # "" désigne l'élément racine.
     chat.next = display_messages(chat.next, dom)
     dom.focus(dom.first_child("")) # voir commentaire précédent.
    def ac_submit(chat,dom,id):
     add_message(dom.get_content(id))
     atlastk.broadcast_action("Display")
     dom.set_content(id,"")
    def ac_display(chat,dom):
     chat.next = display_messages(chat.next, dom)
    CALLBACKS = {
     "": ac_connect,
     "Submit": ac_submit,
     "Display": ac_display
    }
    atlastk.launch(CALLBACKS, Chat)

    Pour une démonstration en ligne :
    - suivre ce lien ;
    - cliquer sur le bouton vert Run ;
    - cliquer sur l'URL qui s'affiche dans la console.

    En cliquant sur le code QR, on ouvre une autre session. On peut également ouvrir une session sur un smartphone ou une tablette en scannant ce QR code.
    Tout message saisit dans une session va s'afficher dans toutes les autres sessions, conformément à ce que l'on attend d'un chatroom.

    Je t'invite à nous montrer le code source de cette même application codée avec une technologie que tu estimes équivalente au toolkit Atlas, comme cela on disposera d'éléments factuels. Si cette techno. est vraiment équivalente, coder cette application ne devrait pas prendre plus d'une demi-heure, vu que c'est le temps que cela m'a pris, sachant, en outre, que Python n'est pas mon langage de programmation usuel.

    Zelbinium: pour la génération qui crée, pas celle qui scrolle...