Bot para hacer sorteos en Hive / Python + Beem

image.png

Hola Hivers, saludos.

Luego de tanto tiempo en espera para algunos amigos, he comenzado a liberar códigos, con la intensión de que los que saben programar les pueden resultar útiles para hacer algunas actividades dentro de la blockchain Hive y aportar herramientas para las comunidades.

Debo resaltar que yo no soy programador, solo sé lo más básico, pero he podido a traves de python realizar algunas aplicaciones para conectarse a la blockchain Hive, luego voy a explicar en un post.

Tengo pendiente publicar algunos códigos como el de @aliento que le paga a las personas que delegran, para que la comunidad la pueda usar.

El código de sorteo es sumamente sencillo, al ejecutarse puede arrojar el resultado tomando como referencia una serie o lista de usuarios que comentan en un post, con el fin de hacer sorteos de manera aleatoria.

Está escrito en Python y se conecta a través de Hive con la librería de Beem.

¿Qué necesitas para ejecutar este bot?

Beem de Hive: https://github.com/holgern/beem [Sigue las instrucciones en el repositorio]

Python: https://www.python.org/ftp/python/3.9.5/python-3.9.5-amd64.exe

¿Cómo funciona?

El bot tiene 2 modalidades: La primera es elegir a un ganador y luego deja un comentario en el post donde queremos que se publique el ganador, para que la elección sea transparente, y la segunda es solo con la consola de python, solo la persona que ejecute el bot puede ver el resultado.

wif: Allí colocarás tu clave de posting de la cuenta que hará el comentario.

comment: Allí colocas el post comenzando con el @ ejemplo:

@enrique89/hivechat-sorteo-por-los-100-hive-patrocinado-por-theycallmedan-3-ganadores

El código es el siguiente (copia y pega en tu editor de texto):

import random
import datetime
import random
import datetime

from beem.instance import set_shared_steem_instance
from beem.comment import Comment

from pprint import pprint
from beem import Hive
from beem.account import Account
from beem.vote import Vote
from beem.comment import Comment
from beemapi.exceptions import RPCError
from beemapi.exceptions import InvalidEndpointUrl
from beem.exceptions import ContentDoesNotExistsException
from datetime import datetime, timedelta
from beem.amount import Amount
from beem.nodelist import NodeList
from beem.instance import set_shared_steem_instance
from beem.instance import shared_hive_instance
from time import sleep
from beem.utils import construct_authorperm, addTzInfo



wif = "Key" # Colocar la clave publica 

hive = Hive(
    #bundle=True, # Enable bundle broadcast
    nobroadcast=True, # Habilitado para Test y si quieres conectar con la blockchain coloca False y bot funcionará normalmente.
    keys=[wif],
)


namehive = "votovzla"  # coloca tu usuario de Hive y dejar las comillas"


acc = Account(namehive , blockchain_instance=hive) 


#Extrae a los participantes mediante un post en Hive, debes añadir la lista de las personas que quieras que se excluyan"

def extraeruser():

    comment = Comment("@enrique89/hivechat-sorteo-por-los-100-hive-patrocinado-por-theycallmedan-3-ganadores")

    # lista de user excluidos 

    

    replies = comment.get_all_replies()
    participants = set()
    for r in replies:
        listaexluir= ['hivebuzz', 'poshbot'] #Agrega la lista, los usuarios exluidos para el sorteo
        if (r.author in listaexluir):

            pass

        else:   
            participants.add(r.author)

    participants = list(participants)

    return participants

# Elegir ganador

def ganador():

    extraer = extraeruser()
    win= random.choice(extraer)
    ganador = win
    return ganador 




def win():


    print("")
    for p in extraeruser():
        print("- @%s" %p)
    print("")
    print("El ganador ha sido:")
    print("")

    ganadoruno = ganador()
    print (ganadoruno)
    print("")



    return ganadoruno













variable = 0  # Colocar 1 si no quieres dejar el comentario en la blockchain 

if variable == 1:

    print ('Ejecutar sin comentario')

    a = win()


    
else:

    print ('ejecutar con comentario')
    



    extraerganador = win()


    ganadores = (' El ganador es  @{}, este ganador a es elegido  a traves de un bot que se conecta con la blockchain Hive '.format(extraerganador) ) #Puedes personalizar el mensaje

    print(ganadores)



    comment = Comment("@enrique89/hivechat-sorteo-por-los-100-hive-patrocinado-por-theycallmedan-3-ganadores", blockchain_instance=hive) #Sustituir con el post en donde van a anuniciar el ganador

    sleep(5)

    comment.reply(ganadores, "", author = acc )
    pprint(hive.broadcast())




#fin  




Voy a adaptar este bot a Discord con otras funcionalidades para que cualquiera que no sepa de programación pueda realizar sorteos a través de la blockchain Hive y elegir al ganador de la manera más rápida.

Igualmente, está abierta la constribución, si eres programador y quiere mejorar el código, eres bienvenido.

Imagen usada en la portada Ver en pixabay LIBRE DE DERECHO DE AUTOR

H2
H3
H4
3 columns
2 columns
1 column
3 Comments