2009-10-21 6 views
3

J'ai fait quelques recherches, et je n'ai pas trouvé de filtre de boiterie open-source pour les rails. Est-ce que quelque chose comme ça existe? J'essaie de réduire le contenu généré par l'utilisateur boiteux, en particulier, tous les plafonds, la capitalisation incorrecte, les points d'exclamation excessifs, et gras excessive ou en italique.Rails Filtre de boiterie?

Répondre

2

Voici un ruby ​​Bayesian Classifier qui peut être entraîné pour bloquer certains types de contenu. Il faudrait de la créativité pour s'appliquer directement à votre problème.

C'est un service commercial, mais SocialMod mérite une mention.

+0

On dirait que SocialMod externalise simplement la modération, pas tout à fait le filtre recherché par jcnnghm. – EmFi

+0

Le filtrage bayésien semble certainement intéressant. Je suis sûr que cela fonctionnerait bien, étant donné que si une personne fait une chose qui déclencherait mon filtre de boiterie, ils en font habituellement plusieurs. Est-ce que quelqu'un sait d'un moyen de persister les classifications avec le plugin listé. – jcnnghm

+0

SnapshotMadeleine peut conserver le classificateur. – jrhicks

2

Je n'en connais pas, mais il devrait être trop difficile d'en saisir la plupart avec un ensemble d'expressions régulières dans une validation personnalisée. Une mauvaise capitalisation est difficile à attraper en raison des noms propres et des acronymes.

before_validation :filter_lameness 

def filter_lameness 
    # reduce exclamation marks 
    content.gsub!(/![!1]+/, "!") 
    # Proper capitalization. 
    content.gsub!(/(\.\s*[a-z])/, $1.upcase) # capital starts sentence 
    content.gsub!(/([A-Z]{5,})/, $1.capitalize) # lowercases all but first letter in a string of capitals. Minimum length 5. 
    # etc... 
    return true # needed in case the last gsub matches nothing, otherwise validation returns nil and will fail 
end 

Personnellement, je serais tenté de garder une trace des infractions des utilisateurs au guide de style et les épingler avec des insignes de démérite après des fautes assez, pour humliation public.