最近一段时间校园网网速超慢,上网就变成了超郁闷的事情,看个Gmail都不行,只好到白云上灌灌水了。手动灌水我已经觉得不爽了,于是开始脚本灌水。开始不会Python,用JavaScript灌,结果发现在web下用JS灌水有时间限制,27秒才能发一个新帖……也不知道term下是不是这样,找到白云站务组的技术大牛Beta问了下,说只要不用歪脖(web)就行。看来我只能用Python了,于是又找到lightning大牛教Python。lightning大牛一个帖子简明扼要地讲明了怎么在Cterm下用Python灌水,简单的例子如下(lightning大牛的原文节选):

import CTerm
import tools
import sys, string, random, glob, os
#sys,string,random,glob,os,tools什么的都是python内置的模块,而
#CTerm是陈琪提供的cterm的接口模块

logfile=open(‘mypython.cterm.log’,’w’)
sys.stdout=logfile
sys.stderr=logfile

#上面这个这些只是为了把输出重定向到这个log,因为没有标准输出可以看

ID=long(sys.argv[0])
#从参数0字段得到当前term所用的id,因为cterm里面可以开好几个窗口
#以后往某窗口发命令要用到这个id

#下面有个函数,一看就明白

def frog(n):
for i in range(n):
j=i+1
title=’%d只青蛙 %d张嘴’%(j,j)
content=’%d只眼睛 %d条腿’%(j*2,j*4)
data=[‘\x10’, title, ‘\n’, ‘\n’, content, ‘\x17′,’\n’]
#最主要的就是跟用户操作一样往终端送字符,我们发帖是Ctrl+p,就是\x10
#然后输入标题,然后回车,回车,输入内容,Ctrl+w,最后回车
for item in data:
SendString(ID, item)
print title+’\n’+content

#函数定义完了,随便调用,我这里调50次青蛙函数,就会从1只青蛙标灌到50只青蛙
frog(50)

logfile.close()
#以上内容存成xxx.py,在某版面上,点工具,运行脚本,上面的脚本就会跑了。

偶举一反二,写了两个脚本,一个自动标灌,一个自动删帖。
自动标灌的,读取某一个文件夹中的所有文件,并以文件中的每一行为标题进行标灌:

import CTerm
import tools
import sys, string, random, glob
import re,os

logfile=open(‘mypython.cterm.log’,’w’)
sys.stdout=logfile
sys.stderr=logfile

#得到当前窗口使用的ID
ID=long(sys.argv[0])

#正则表达式,匹配空行或者空格行,\xA1\xA1是中文里的空格
regex=”^[\s|(\xA1\xA1)]*$”

#要读取的文件所在的文件夹
aimDir=’G:/FBS/Test/’

#读取所有文件,并标灌
for newFileName in os.listdir(aimDir):
#获取文件路径
fileName=aimDir+newFileName
#打开文件
f=open(fileName,’r’)
#拿文件里的内容进行标灌
#每一行为一个标题
for line in f.readlines():
if re.match(regex,line):
line=”空行”
data=[‘\x10’, line, ‘\n’, ‘\n’, ‘\x17′,’\n’]
for item in data:
SendString(ID, item)
print line
f.close()

logfile.close()

自动删帖的,斑竹不在,标灌太多,扰民太严重,为了保障其他水手的利益,自己把自己标灌的帖子删了吧。

import CTerm
import tools
import sys, string, random, glob, os

logfile=open(‘mypython.cterm.log’,’w’)
sys.stdout=logfile
sys.stderr=logfile

#删除文章的函数
def delPost(n):
ID=long(sys.argv[0])
for i in range(n):
data=[‘d’, ‘y’, ‘\n’]
for item in data:
SendString(ID, item)

#执行之前请把你的光标移到第一篇要删除的文章
#调用函数,参数是要删除的文章数
#要删除的最后文章的ID减去第一篇要删除文章的ID再加上1
delPost(39)

logfile.close()

3 Comments

  1. 纯粹娱乐,呵呵
    斑竹不在,只好自己删了,否则实在是太扰民了,超过文章数上限,斑斑有责的。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.