(yazılıp gönderilmeden önce yazılır yazılmaz da yapılabilir ancak çok yavaş oldu o zaman).
Hızlıca ilk adımları atlıyorum
(Google App Engine Launcher sahibi olmalısınız ki zatn bedava bir uygulama onu bir indirin. Bu uygulamayı öyle deploy ediyorum ben)
1. Google App Engine bir uygulama oluştur (ben tayyarrobotfiltre yaptım)
2. waveapi (python) indir
3. tayyarrobotfiltre dizini içine waveapiyi kopyala
4. App.yaml oluştur :
application: tayyarrobotfiltre version: 1 runtime: python api_version: 1 handlers: - url: /_wave/.* script: main.py - url: /assets static_dir: assets - url: /argo.txt static_files: argo.txt upload: argo.txt
5. argo.txt diye bir dosya (ana dizine) oluşturun. İçinde "dict" oluşturun şunun gibi (içeriğini arttırın tabi. bu bir deneme) :
'salak': 's****', 'salakca':'s****', 'aptal':'a*****'
(aslında xml ile yapmak isterdim ama python çok yeni bir dil bana. siz isterseniz genişletebilirsiniz.)
6. ve python kodumuz da şöyle main.py
# -*- coding: utf-8 -*- #!/usr/bin/python # Copyright (C) 2010 Hasan Tayyar BEŞİK # tayyar.besik@gmail.com import re import urllib2 from waveapi import events from waveapi import model from waveapi import robot from waveapi.document import Range def replace_all(text, dic): for i, j in dic.iteritems(): text = text.replace(i, j) return text def OnBlipSubmitted(properties, context): """Invoked when a Blip is submitted to the wave.""" blip = context.GetBlipById(properties['blipId']) contents = blip.GetDocument().GetText() dic1 = {'manyak':'m***k','okuz':'o***z','aptal':'a***l','mongol':'****','yalaka':'******','salak':'******'} response = urllib2.urlopen('http://tayyarrobotfiltre.appspot.com/argo.txt') #dic = eval('{%s}' % open("/argo.txt","r").read()) dic = eval('{%s}' % response.read().encode('utf-8')) newcontents = replace_all(contents,dic) if newcontents != contents: blip.GetDocument().SetText(newcontents) #blip.GetDocument().SetText(dic) #blip.GetDocument().SetText(response.read()) def OnDocumentChanged(properties, context): """Invoked when the document is edited.""" pass def OnRobotAdded(properties, context): """Invoked when the robot has been added.""" root_wavelet = context.GetRootWavelet() root_wavelet.CreateBlip().GetDocument().SetText("Merhaba; Ben bir robotum. Konuşmalardaki kötü ifadeleri kaldırırım. ;)") if __name__ == '__main__': myRobot = robot.Robot('Tayyar Robot Filtreleme', image_url='http://tayyarrobotfiltre.appspot.com/assets/icon.png', version='2', profile_url='http://tayyarrobotfiltre.appspot.com/assets/profile.html') myRobot.RegisterHandler(events.BLIP_SUBMITTED, OnBlipSubmitted) myRobot.RegisterHandler(events.DOCUMENT_CHANGED, OnDocumentChanged) myRobot.RegisterHandler(events.WAVELET_SELF_ADDED, OnRobotAdded) myRobot.Run()
No comments:
Post a Comment