Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 9f666304ccb25a5eaa971bbc88494f934b176d8d
  • main par défaut protégée
2 résultats

launch.py

Blame
  • Vote.pm 9,46 Kio
    package Vote; # command = vote
    
    use strict;
    use warnings;
    
    use Storable;
    
    
    
    # Tableau des votes
    # On les stocke de telle manière :
    # "#chan id" --> "chan" --------> chan/reply name
    #         |----> "id" ----------> vote id
    #         |----> "added date" --> timestamp
    #         |----> "question" ----> yes/no question to answer
    #         |----> "voters" ------> [user@host voters]
    #         |----> "results" -----> ("yes" => nb, "no" => nb)
    #         `----> "author" ------> user@host
    # ...
    our %votes = ();
    
    # Tableau des derniers votes ajoutés
    # Format :
    # "chan1" --> dernier vote id
    # ...
    our %last_added = ();
    
    
    
    
    # ###
    #  vote_main
    # Permet de gérer des votes
    # 
    # Usage :
    #  !vote new <question>
    #  !vote del <id>
    #  !vote list [#chan]
    #  !vote see <id>
    #  !vote [<id>] {yes|no}
    # ###
    sub vote_main
    {
    	my ($conn, $event, $reply_to, $ref_params) = @_;
    	
    	# Don't use in query, only on chans
    	unless(substr($reply_to, 0, 1) eq '#')
    	{
    		$::displayer->sendto($reply_to, "Can't operate in query, sorry.");
    		return 1;
    	}
    	
    	if(defined($ref_params->[0]) && $ref_params->[0])
    	{
    		if($ref_params->[0] eq 'new')
    		{
    			return 1 if(new_vote($conn, $event, $reply_to, $ref_params));
    		}
    		elsif($ref_params->[0] =~ m'del(ete)?|remove')
    		{
    			return 1 if(del_vote($conn, $event, $reply_to, $ref_params));
    		}
    		elsif($ref_params->[0] eq 'list')
    		{
    			return 1 if(list_votes($conn, $event, $reply_to, $ref_params));
    		}
    		elsif($ref_params->[0] eq 'see')
    		{
    			return 1 if(see_vote($conn, $event, $reply_to, $ref_params));
    		}