classRobot
{
/**////attributes
//cookies
privateCookieCollectionCkCollection=null;
//requestandresponse
privateHttpWebRequestSparkRequest=null;
privateHttpWebResponseSparkResponse=null;
//someurl
privatestringLoginUrl=null;
privatestringReplyUrl=null;
//constructer
publicRobot()
{
CkCollection=newCookieCollection();
}
//logining
publicstringLogin(stringurl,stringusr,stringpass)
{
stringReturn=null;
this.LoginUrl=url;
//maybeIshouldaddafunctinforcreatestring
stringloginstr="formhash=3bd8bc0a&referer=index.php&loginmode=&styleid=&cookietime=2592000&loginfield=username&username="+usr;
loginstr+="&password="+pass;
loginstr+="&questionid=0&answer=&loginsubmit=提交";
loginstr=EncodePost(loginstr);
byte[]replybyte=Encoding.UTF8.GetBytes(loginstr);
try
{
CookieContainersparkc=newCookieContainer();
SparkRequest=(HttpWebRequest)WebRequest.Create(url);
SparkRequest.CookieContainer=sparkc;
SparkRequest.ContentType="application/x-www-form-urlencoded";
SparkRequest.Method="POST";
SparkRequest.ContentLength=replybyte.Length;
StreamnewStream=SparkRequest.GetRequestStream();
newStream.Write(replybyte,0,replybyte.Length);
newStream.Close();
SparkResponse=(HttpWebResponse)SparkRequest.GetResponse();
StreamdataStream=SparkResponse.GetResponseStream();
StreamReaderreader=newStreamReader(dataStream,Encoding.GetEncoding("gb2312"));
Return=reader.ReadToEnd();
//checkcookie
foreach(CookietempinSparkResponse.Cookies)
{
if(temp.Domain!="spark.cjlu.edu.cn")
temp.Domain="spark.cjlu.edu.cn";
}
CkCollection=SparkResponse.Cookies;
}
catch
{
returnnull;
}
returnReturn;
}
//overload
/**//*
publicboolLogin(stringusr,stringpass)
{
;
}*/
//reply……
publicstringReply(stringurl,stringformhash,stringtitle,stringcontent)
{
SparkRequest=(HttpWebRequest)WebRequest.Create("http://spark.cjlu.edu.cn/bbs/"+url);
SparkRequest.ContentType="application/x-www-form-urlencoded";
SparkRequest.Method="POST";
//SparkRequest.Referer="http://spark.cjlu.edu.cn/bbs/index.php";
SparkRequest.KeepAlive=true;
SparkRequest.AllowWriteStreamBuffering=false;
//setcookie
CookieContainercookieCon=newCookieContainer();
SparkRequest.CookieContainer=cookieCon;
SparkRequest.CookieContainer.Add(CkCollection);
//getpostvalue
stringreply=EncodePost("formhash="+formhash+"&subject=&usesig=1&message="+content);
byte[]replybyte=Encoding.UTF8.GetBytes(reply);
SparkRequest.ContentLength=replybyte.Length;
StreamnewStream=SparkRequest.GetRequestStream();
newStream.Write(replybyte,0,replybyte.Length);
newStream.Close();
//getresponse
SparkResponse=(HttpWebResponse)SparkRequest.GetResponse();
StreamdataStream=SparkResponse.GetResponseStream();
StreamReaderreader=newStreamReader(dataStream,Encoding.GetEncoding("gb2312"));
stringtt=reader.ReadToEnd();
reader.Close();
dataStream.Close();
SparkResponse.Close();
returntt;
}
//encodethepoststring
privatestringEncodePost(stringinput)
{
stringoutput=null;
Char[]reserved={'?','=','&'};
if(input!=null)
{
inti=0,j;
while(i<input.Length)
{
j=input.IndexOfAny(reserved,i);
if(j==-1)
{
output=output+HttpUtility.UrlEncode(input.Substring(i,input.Length-i),System.Text.Encoding.GetEncoding("gb2312"));
break;
}
stringtt=HttpUtility.UrlEncode(input.Substring(i,j-i),System.Text.Encoding.GetEncoding("gb2312"));
output+=tt;
output+=input.Substring(j,1);
i=j+1;
}
returnoutput;
}
else
returnnull;
}
}
分享到:
相关推荐
Discuz论坛发帖器是一款专为Discuz!社区平台设计的工具,用于自动化地在论坛上发布帖子。Discuz! 是一个广泛使用的开源论坛软件,它提供了强大的社区管理和用户交互功能。这款发帖器旨在帮助用户高效地进行信息分享...
适用于通用的Discuz论坛程序的批量发帖。可以设置一个帖子发布到N个论坛,或者N个帖子发布到一个论坛。全自动化的formhash获取,分类获取。多线程技术让发帖速度更快更好。 二、使用方法 1,打开批量发贴机,...
"快速发帖处自动排版插件 for Discuz! 7.2 GBK" 是专门为 Discuz! 7.2 版本设计的一个增强功能插件,主要目标是提升用户在论坛上发布帖子时的效率和体验。 首先,我们来了解这个插件的主要功能。"自动排版" 是其...
论坛系统中富文本编辑的功能性代码,它允许用户在发帖时使用特定的标签来实现文本格式化、插入图片、链接等操作。下面我们将详细解析给出的部分示例: 1. **加粗文本**:`[b]`和`[/b]`标签用来加粗文本,如`[b]Abc...
启用后,系统会自动识别并应用插件中的代码,实现移除首页发帖按钮的效果。 "去掉DZ自带首页发帖按钮for discuz! 插件"文件是实际的插件代码文件,可能包含PHP脚本和CSS样式,用于实现功能。PHP部分可能会覆盖或...
每日发帖冠军自动积分奖励for discuz!7.0 插件 1、每天自动查询当日发帖冠军,自动奖励论坛积分; 2、可以自由设置每天要奖励发帖的前几名; 3、自动发送论坛短消息通知发帖冠军; 4、系统每日会给论坛管理员...
在Discuz7.2版本中,发贴API是重要的组成部分,它使得开发者能够构建第三方应用,实现自动化发布帖子的功能。 2. **发贴API**: 发贴API是Discuz提供的用于创建新主题的接口。它通常需要传递一系列参数,如板块ID...
标题 "发帖机器人插件 for Discuz!7.0.rar" 涉及的主要知识点是Discuz!论坛系统的插件开发与应用。Discuz!是一款非常流行的开源社区论坛软件,它允许用户通过安装不同的插件来扩展其功能。在这个特定的场景中,我们...
在PHP编程中,模拟登录(通常称为Web抓取或网页模拟操作)是一种常见的技术,用于自动化与网站的交互,例如登录论坛并进行发帖。在这个特定的场景中,我们需要使用PHP来模拟登录Discuz! 2.0论坛系统,然后在成功登录...
你可以创建一个中间件,检查用户的session状态,如果用户在网站上已登录,则自动在Discuz!中设置相应的cookie。同样,当用户在Discuz!上登录后,也需要更新网站的session。确保两个系统的用户ID能对应起来,以便进行...
【标题】"Discuz 提供的编码转换工具"涉及到的是网站论坛系统Discuz!中的一种常见操作,即字符编码的转换。在互联网发展的初期,不同的字符编码标准(如GBK和UTF-8)导致了跨平台、跨语言交流时的数据不兼容问题。...
3. 将"发帖时默认禁用url识别.txt"中的代码复制,然后在后台找到相应的插件安装或模板编辑部分进行添加。 4. 检查并确认设置,确保插件已经正确安装并激活。 5. 在插件管理界面,找到新安装的插件并进行配置,如设置...
这个接口主要适用于自动化数据采集和发布,例如与“火车头”这样的内容抓取工具配合使用,可以方便地将抓取到的信息自动导入到Discuz! 论坛的门户模块。 Discuz! X3.1至X3.4版本的免登录发布接口可能包含以下核心...
例如,系统会自动记录并分析用户的IP地址,识别异常登录行为,及时采取措施防止潜在的威胁。 #### 三、Discuz!代码优化与数据库管理 针对Discuz!的代码优化,重点在于提升程序运行效率和数据库访问速度。以下是几...
论坛发帖工具通常是用于自动化在特定论坛发布帖子的软件,它可以节省用户手动填写表单的时间,提高效率。源码中可能包括了登录验证、页面解析、数据填充、提交表单等功能模块。通过分析这些源码,我们可以了解到网络...
中的核心代码部分,可能包含与插件功能相关的PHP脚本,这些脚本会与论坛的主体逻辑交互,实现插件的功能。"templates"目录则包含模板文件,这些文件决定了插件在用户界面中的显示样式和交互元素,可能包括提示信息、...
从创立之初即以提高产品效率为突破口,随着编译模板,语法生成内核,数据缓存和自动更新机制等独创或独有技术的应用,和坚固的数据结构及最少化数据库查询设计,使得 Discuz! 可以在极为繁忙的服务器环境下快速稳定...
这有助于学习ASP.NET编程技巧,尤其是对于社区应用的开发,如用户注册、登录、发帖、回帖、权限控制等常见功能的实现。 【社区论坛系统设计】 论坛社区系统的核心功能包括用户模块(注册、登录、个人信息管理)、...
而“发帖子练级”插件则将这种等级提升与用户发帖行为更紧密地关联起来,用户每发表一个符合规则的帖子,都会获得一定的经验值,当经验值积累到一定值时,用户等级自动提升。这样的设计使得用户在享受分享知识、交流...
"2.6rc未登录状态,导航栏显示了一些应该是登录后才显示的链接",已修正 email验证的问题,已修正 导航菜单链接问题,已修正 选用.NET 邮件发送程序 发送html代码,已修正 删除图片的问题,已修正 用户昵称的保留关键字有...