Susies

Description

Susies est une gem destinée aux étudiants d'Epitech.

Elle permet de trouver simplement une susie en fonction de quelques critères.

Installation

Soit par ligne de commande: gem install susies

Soit via un Gemfile: gem 'susies' et bundle install

Utilisation

L'utilisation est assez simple:

require 'susies'

# whiteListFilters: susies MUST match these filters
whiteListFilters = {
  logins:       %w[login_x],
  nb_registered: 6,
  minTime:       "8:10",
  maxTime:       "17:42"
}

# blackListFilters: susies MUST NOT match these filters
blackListFilters = {
  type: 'reading',
  title: 'zola'
}

# autologin: intranet authentication
autologins = {
  autologinPath:     '/my_autologin_path',
  buddiesAutologins: %w[/buddy_autologin_path],
}

# mailInfos: mailer configuration
mailInfos = {
  uname:  '[email protected]',
  passwd: 'password',
  targets: %w[[email protected] [email protected]]
}

Susies.new( autologins, whiteListFilters, blackListFilters, mailInfos ).check!

La gem se connectera alors à l'intra pour vérifier l'existence d'une susie correspondant à vos critères, durant une semaine où vous n'avez pas encore de susie.

Si elle trouve une susie, elle vous y inscrira, inscrira vos amis et préviendra tout le monde par mail.

Filters

A utiliser si vous souhaitez filtrer les susies qui vous intéressent.

Les whiteListFilters sont les critères que les susies doivent avoir, à l'inverse des blackListFilters.

Laissez nil si vous ne voullez pas de filtres.

logins

  • Les logins des susies recherchées.
  • Type: Array of strings
  • Default: nil

nb_registered

  • Nombre d'étudiants déjà inscrit à la susie class (0: personne d'inscrit, 10: plus de places)
  • Type: int
  • Default: nil

minTime

  • Heure minimum du début de la susie class.
  • Type: String (format: "HH:MM")
  • Default: nil

maxTime

  • Heure maximum du début de la susie class.
  • Type: String (format "HH:MM")
  • Default: nil

title

  • KeyWord que le titre de la susie doit contenir.
  • Type: String
  • Default: nil

type

  • Type de la susie
  • Type: String
  • Default: nil

MailInfos

A utiliser si vous souhaitez être alerté en cas d'inscription par le script. Fonctionne avec une adresse GMail.

Laissez nil si vous ne voullez pas envoyer de mails.

uname

  • Nom d'utilisateur pour se connecter au serveur mail. cf example/susies.rb pour un exemple de configuration basé sur gmail.
  • Type: String
  • Default: nil

passwd

  • Mot de passe pour se connecter au serveur mail. cf example/susies.rb pour un exemple de configuration basé sur gmail.
  • Type: String
  • Default: nil

targets

  • Emails des personnes devant être alertés lorsqu'une susie a été trouvée.
  • Type: Array of strings
  • Default: nil

Autologins

autologinPath

  • Votre autologin. Il s'agit du path et non de l'URL complète. Ce paramètre est OBLIGATOIRE!
  • Type String
  • Default: nil

buddiesAutologins

  • Autologins des personnes devant être inscrites à la susie class (en plus de vous). Il s'agit du path et non de l'URL complète.
  • Type: Array of strings
  • Default: []

Cron Task

Une bonne utilisation de cette gem serait de l'utiliser via une tache cron qui lancera le script à intervalle régulier.

Par exemple, il est intéressant de faire une tache s'exécutant toutes les 5 minutes:

*/5 * * * * GEM_HOME=/path/to/gem/home /path/to/script.rb 1>> /path/to/log 2>> /path/to/errors.log

Améliorations Possibles

  1. Gestion des jours
  2. Planning horaire par jour

Contribuer

  1. Fork
  2. Créer votre branche (git checkout -b my-branch)
  3. Commit les nouvelles fonctionnalités (git commit -am 'New features')
  4. Push (git push origin my-branch)
  5. Faire une Pull request

License

MIT License

Author

Simon Ninon aka ninon_s aka Cylix