Script para sorteio de amigo secreto

2 Dec

As festas chegaram e, com elas, os amigos secretos. Para facilitar a vida dos sorteios segue um pequeno script que fiz ano passado. O script pega um lista de pessoas, sorteia e envia um email para cada uma com o nome do seu amigo secreto. Ele evita que uma pessoa pegue a si mesmo, ou alguém deixe de ser sorteado:

 
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Script para sorteio de amigo secreto
# Hugo Doria
 
from random import shuffle
import os
 
arquivo = open("amigos.txt","r")
 
pessoas = arquivo.readlines()
shuffle(pessoas)
 
for par in zip(pessoas, pessoas[1:] + pessoas [:1]):
  envia = os.popen("/usr/bin/mail -s '[sorteio] Seu amigo secreto é ...'" + par[0].replace("\n","").split("-")[1], "w")
  envia.write("Seu amigo secreto é .... \n\n\n" + par[1].replace("\n","").split("-")[0])
 
  envia.close()
  print par
 
arquivo.close()
 

Para rodar o script você só precisa do python e de um arquivo chamado amigos.txt, com o nome das pessoas dentro no formato Nome - email.

Exemplo:

Fulana - meu@email.com.br
Sicrana - sicrana@hotmail.com
Beltrana - com-cam@tal.com.br

6 Responses to “Script para sorteio de amigo secreto”

  1. Djavan Fagundes 03. Dec, 2009 at 17:18 #

    Que bacana Hugo! Veio no momento exato para ser usado aqui no trabalho. Está licenciado sob GPL?

    • Hugo Doria 20. Dec, 2009 at 11:50 #

      Django,

      Não está sob nenhuma licença específica. Use-o a vontade.

      • Hugo Doria 20. Dec, 2009 at 11:51 #

        Djavan* (e não Django). Desculpe. É a idade chegando. #)

  2. Igor Freire 20. Dec, 2009 at 11:28 #

    Pô, não sei mexer nada em python, instalei o programa, fiz o amigos.txt e tentei rodar, mas não deu certo =( precisa fazer mais alguma coisa?

    • Hugo Doria 20. Dec, 2009 at 11:50 #

      Igor,

      Você possui o sendmail (ou postfix) rodando na máquina? Não precisa de nenhuma configuração complexa.

      Além disso, mudei uma linha no script para funcionar nas novas versões do python.

      Tenta novamente.

      Abraços.

  3. logotipo 18. Jul, 2010 at 15:57 #

    Oi Hugo, obrigado pelo script (eu sucko com código).

Leave a Reply