diff --git a/KanColleJ.sln b/KanColleJ.sln
new file mode 100644
index 0000000..ca20292
--- /dev/null
+++ b/KanColleJ.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KanColleJ", "KanColleJ\KanColleJ.csproj", "{D4942E8B-F12E-4372-A76D-B0FE8C2A2CF5}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D4942E8B-F12E-4372-A76D-B0FE8C2A2CF5}.Debug|x86.ActiveCfg = Debug|x86
+ {D4942E8B-F12E-4372-A76D-B0FE8C2A2CF5}.Debug|x86.Build.0 = Debug|x86
+ {D4942E8B-F12E-4372-A76D-B0FE8C2A2CF5}.Release|x86.ActiveCfg = Release|x86
+ {D4942E8B-F12E-4372-A76D-B0FE8C2A2CF5}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(MonoDevelopProperties) = preSolution
+ StartupItem = KanColleJ\KanColleJ.csproj
+ EndGlobalSection
+EndGlobal
diff --git a/KanColleJ.userprefs b/KanColleJ.userprefs
new file mode 100644
index 0000000..e73c6ed
--- /dev/null
+++ b/KanColleJ.userprefs
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KanColleJ/HttpHelper.cs b/KanColleJ/HttpHelper.cs
new file mode 100644
index 0000000..2278773
--- /dev/null
+++ b/KanColleJ/HttpHelper.cs
@@ -0,0 +1,839 @@
+///
+/// 类说明:HttpHelper类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理
+/// 重要提示:请不要自行修改本类,如果因为你自己修改后将无法升级到新版本。如果确实有什么问题请到官方网站提建议,
+/// 我们一定会及时修改
+/// 编码日期:2011-09-20
+/// 编 码 人:苏飞
+/// 联系方式:361983679
+/// 官方网址:http://www.sufeinet.com/thread-3-1-1.html
+/// 修改日期:2014-04-21
+/// 版 本 号:1.4.5
+///
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Net;
+using System.IO;
+using System.Text.RegularExpressions;
+using System.IO.Compression;
+using System.Security.Cryptography.X509Certificates;
+using System.Net.Security;
+
+namespace DotNet.Utilities
+{
+ ///
+ /// Http连接操作帮助类
+ ///
+ public class HttpHelper
+ {
+
+ #region 预定义方变量
+ //默认的编码
+ private Encoding encoding = Encoding.Default;
+ //Post数据编码
+ private Encoding postencoding = Encoding.Default;
+ //HttpWebRequest对象用来发起请求
+ private HttpWebRequest request = null;
+ //获取影响流的数据对象
+ private HttpWebResponse response = null;
+ #endregion
+
+ #region Public
+
+ ///
+ /// 根据相传入的数据,得到相应页面数据
+ ///
+ /// 参数类对象
+ /// 返回HttpResult类型
+ public HttpResult GetHtml(HttpItem item)
+ {
+ //返回参数
+ HttpResult result = new HttpResult();
+ try
+ {
+ //准备参数
+ SetRequest(item);
+ }
+ catch (Exception ex)
+ {
+ //配置参数时出错
+ return new HttpResult() { Cookie = string.Empty, Header = null, Html = ex.Message, StatusDescription = "配置参数时出错:" + ex.Message };
+ }
+ try
+ {
+ //请求数据
+ using (response = (HttpWebResponse)request.GetResponse())
+ {
+ GetData(item, result);
+ }
+ }
+ catch (WebException ex)
+ {
+ using (response = (HttpWebResponse)ex.Response)
+ {
+ GetData(item, result);
+ }
+ }
+ catch (Exception ex)
+ {
+ result.Html = ex.Message;
+ }
+ if (item.IsToLower) result.Html = result.Html.ToLower();
+ return result;
+ }
+ #endregion
+
+ #region GetData
+
+ ///
+ /// 获取数据的并解析的方法
+ ///
+ ///
+ ///
+ private void GetData(HttpItem item, HttpResult result)
+ {
+ #region base
+ //获取StatusCode
+ result.StatusCode = response.StatusCode;
+ //获取StatusDescription
+ result.StatusDescription = response.StatusDescription;
+ //获取Headers
+ result.Header = response.Headers;
+ //获取CookieCollection
+ if (response.Cookies != null) result.CookieCollection = response.Cookies;
+ //获取set-cookie
+ if (response.Headers["set-cookie"] != null) result.Cookie = response.Headers["set-cookie"];
+ #endregion
+
+ #region byte
+ //处理网页Byte
+ byte[] ResponseByte = GetByte();
+ #endregion
+
+ #region Html
+ if (ResponseByte != null & ResponseByte.Length > 0)
+ {
+ //设置编码
+ SetEncoding(item, result, ResponseByte);
+ //得到返回的HTML
+ result.Html = encoding.GetString(ResponseByte);
+ }
+ else
+ {
+ //没有返回任何Html代码
+ result.Html = string.Empty;
+ }
+ #endregion
+ }
+ ///
+ /// 设置编码
+ ///
+ /// HttpItem
+ /// HttpResult
+ /// byte[]
+ private void SetEncoding(HttpItem item, HttpResult result, byte[] ResponseByte)
+ {
+ //是否返回Byte类型数据
+ if (item.ResultType == ResultType.Byte) result.ResultByte = ResponseByte;
+ //从这里开始我们要无视编码了
+ if (encoding == null)
+ {
+ Match meta = Regex.Match(Encoding.Default.GetString(ResponseByte), " 0)
+ {
+ c = meta.Groups[1].Value.ToLower().Trim();
+ }
+ if (c.Length > 2)
+ {
+ try
+ {
+ encoding = Encoding.GetEncoding(c.Replace("\"", string.Empty).Replace("'", "").Replace(";", "").Replace("iso-8859-1", "gbk").Trim());
+ }
+ catch
+ {
+ if (string.IsNullOrEmpty(response.CharacterSet))
+ {
+ encoding = Encoding.UTF8;
+ }
+ else
+ {
+ encoding = Encoding.GetEncoding(response.CharacterSet);
+ }
+ }
+ }
+ else
+ {
+ if (string.IsNullOrEmpty(response.CharacterSet))
+ {
+ encoding = Encoding.UTF8;
+ }
+ else
+ {
+ encoding = Encoding.GetEncoding(response.CharacterSet);
+ }
+ }
+ }
+ }
+ ///
+ /// 提取网页Byte
+ ///
+ ///
+ private byte[] GetByte()
+ {
+ byte[] ResponseByte = null;
+ MemoryStream _stream = new MemoryStream();
+
+ //GZIIP处理
+ if (response.ContentEncoding != null && response.ContentEncoding.Equals("gzip", StringComparison.InvariantCultureIgnoreCase))
+ {
+ //开始读取流并设置编码方式
+ _stream = GetMemoryStream(new GZipStream(response.GetResponseStream(), CompressionMode.Decompress));
+ }
+ else
+ {
+ //开始读取流并设置编码方式
+ _stream = GetMemoryStream(response.GetResponseStream());
+ }
+ //获取Byte
+ ResponseByte = _stream.ToArray();
+ _stream.Close();
+ return ResponseByte;
+ }
+
+ ///
+ /// 4.0以下.net版本取数据使用
+ ///
+ /// 流
+ private MemoryStream GetMemoryStream(Stream streamResponse)
+ {
+ MemoryStream _stream = new MemoryStream();
+ int Length = 256;
+ Byte[] buffer = new Byte[Length];
+ int bytesRead = streamResponse.Read(buffer, 0, Length);
+ while (bytesRead > 0)
+ {
+ _stream.Write(buffer, 0, bytesRead);
+ bytesRead = streamResponse.Read(buffer, 0, Length);
+ }
+ return _stream;
+ }
+ #endregion
+
+ #region SetRequest
+
+ ///
+ /// 为请求准备参数
+ ///
+ ///参数列表
+ private void SetRequest(HttpItem item)
+ {
+ // 验证证书
+ SetCer(item);
+ //设置Header参数
+ if (item.Header != null && item.Header.Count > 0) foreach (string key in item.Header.AllKeys)
+ {
+ request.Headers.Add(key, item.Header[key]);
+ }
+ // 设置代理
+ SetProxy(item);
+ if (item.ProtocolVersion != null) request.ProtocolVersion = item.ProtocolVersion;
+ request.ServicePoint.Expect100Continue = item.Expect100Continue;
+ //请求方式Get或者Post
+ request.Method = item.Method;
+ request.Timeout = item.Timeout;
+ request.KeepAlive = item.KeepAlive;
+ request.ReadWriteTimeout = item.ReadWriteTimeout;
+ if (item.IfModifiedSince != null) request.IfModifiedSince = Convert.ToDateTime(item.IfModifiedSince);
+ //Accept
+ request.Accept = item.Accept;
+ //ContentType返回类型
+ request.ContentType = item.ContentType;
+ //UserAgent客户端的访问类型,包括浏览器版本和操作系统信息
+ request.UserAgent = item.UserAgent;
+ // 编码
+ encoding = item.Encoding;
+ //设置安全凭证
+ request.Credentials = item.ICredentials;
+ //设置Cookie
+ SetCookie(item);
+ //来源地址
+ request.Referer = item.Referer;
+ //是否执行跳转功能
+ request.AllowAutoRedirect = item.Allowautoredirect;
+ if (item.MaximumAutomaticRedirections > 0)
+ {
+ request.MaximumAutomaticRedirections = item.MaximumAutomaticRedirections;
+ }
+ //设置Post数据
+ SetPostData(item);
+ //设置最大连接
+ if (item.Connectionlimit > 0) request.ServicePoint.ConnectionLimit = item.Connectionlimit;
+ }
+ ///
+ /// 设置证书
+ ///
+ ///
+ private void SetCer(HttpItem item)
+ {
+ if (!string.IsNullOrEmpty(item.CerPath))
+ {
+ //这一句一定要写在创建连接的前面。使用回调的方法进行证书验证。
+ ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
+ //初始化对像,并设置请求的URL地址
+ request = (HttpWebRequest)WebRequest.Create(item.URL);
+ SetCerList(item);
+ //将证书添加到请求里
+ request.ClientCertificates.Add(new X509Certificate(item.CerPath));
+ }
+ else
+ {
+ //初始化对像,并设置请求的URL地址
+ request = (HttpWebRequest)WebRequest.Create(item.URL);
+ SetCerList(item);
+ }
+ }
+ ///
+ /// 设置多个证书
+ ///
+ ///
+ private void SetCerList(HttpItem item)
+ {
+ if (item.ClentCertificates != null && item.ClentCertificates.Count > 0)
+ {
+ foreach (X509Certificate c in item.ClentCertificates)
+ {
+ request.ClientCertificates.Add(c);
+ }
+ }
+ }
+ ///
+ /// 设置Cookie
+ ///
+ /// Http参数
+ private void SetCookie(HttpItem item)
+ {
+ if (!string.IsNullOrEmpty(item.Cookie)) request.Headers[HttpRequestHeader.Cookie] = item.Cookie;
+ //设置CookieCollection
+ if (item.ResultCookieType == ResultCookieType.CookieCollection)
+ {
+ request.CookieContainer = new CookieContainer();
+ if (item.CookieCollection != null && item.CookieCollection.Count > 0)
+ request.CookieContainer.Add(item.CookieCollection);
+ }
+ }
+ ///
+ /// 设置Post数据
+ ///
+ /// Http参数
+ private void SetPostData(HttpItem item)
+ {
+ //验证在得到结果时是否有传入数据
+ if (request.Method.Trim().ToLower().Contains("post"))
+ {
+ if (item.PostEncoding != null)
+ {
+ postencoding = item.PostEncoding;
+ }
+ byte[] buffer = null;
+ //写入Byte类型
+ if (item.PostDataType == PostDataType.Byte && item.PostdataByte != null && item.PostdataByte.Length > 0)
+ {
+ //验证在得到结果时是否有传入数据
+ buffer = item.PostdataByte;
+ }//写入文件
+ else if (item.PostDataType == PostDataType.FilePath && !string.IsNullOrEmpty(item.Postdata))
+ {
+ StreamReader r = new StreamReader(item.Postdata, postencoding);
+ buffer = postencoding.GetBytes(r.ReadToEnd());
+ r.Close();
+ } //写入字符串
+ else if (!string.IsNullOrEmpty(item.Postdata))
+ {
+ buffer = postencoding.GetBytes(item.Postdata);
+ }
+ if (buffer != null)
+ {
+ request.ContentLength = buffer.Length;
+ request.GetRequestStream().Write(buffer, 0, buffer.Length);
+ }
+ }
+ }
+ ///
+ /// 设置代理
+ ///
+ /// 参数对象
+ private void SetProxy(HttpItem item)
+ {
+ bool isIeProxy = false;
+ if (!string.IsNullOrEmpty(item.ProxyIp))
+ {
+ isIeProxy = item.ProxyIp.ToLower().Contains("ieproxy");
+ }
+ if (!string.IsNullOrEmpty(item.ProxyIp) && !isIeProxy)
+ {
+ //设置代理服务器
+ if (item.ProxyIp.Contains(":"))
+ {
+ string[] plist = item.ProxyIp.Split(':');
+ WebProxy myProxy = new WebProxy(plist[0].Trim(), Convert.ToInt32(plist[1].Trim()));
+ //建议连接
+ myProxy.Credentials = new NetworkCredential(item.ProxyUserName, item.ProxyPwd);
+ //给当前请求对象
+ request.Proxy = myProxy;
+ }
+ else
+ {
+ WebProxy myProxy = new WebProxy(item.ProxyIp, false);
+ //建议连接
+ myProxy.Credentials = new NetworkCredential(item.ProxyUserName, item.ProxyPwd);
+ //给当前请求对象
+ request.Proxy = myProxy;
+ }
+ }
+ else if (isIeProxy)
+ {
+ //设置为IE代理
+ }
+ else
+ {
+ request.Proxy = item.WebProxy;
+ }
+ }
+ #endregion
+
+ #region private main
+ ///
+ /// 回调验证证书问题
+ ///
+ /// 流对象
+ /// 证书
+ /// X509Chain
+ /// SslPolicyErrors
+ /// bool
+ private bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; }
+ #endregion
+ }
+ ///
+ /// Http请求参考类
+ ///
+ public class HttpItem
+ {
+ string _URL = string.Empty;
+ ///
+ /// 请求URL必须填写
+ ///
+ public string URL
+ {
+ get { return _URL; }
+ set { _URL = value; }
+ }
+ string _Method = "GET";
+ ///
+ /// 请求方式默认为GET方式,当为POST方式时必须设置Postdata的值
+ ///
+ public string Method
+ {
+ get { return _Method; }
+ set { _Method = value; }
+ }
+ int _Timeout = 100000;
+ ///
+ /// 默认请求超时时间
+ ///
+ public int Timeout
+ {
+ get { return _Timeout; }
+ set { _Timeout = value; }
+ }
+ int _ReadWriteTimeout = 30000;
+ ///
+ /// 默认写入Post数据超时间
+ ///
+ public int ReadWriteTimeout
+ {
+ get { return _ReadWriteTimeout; }
+ set { _ReadWriteTimeout = value; }
+ }
+ Boolean _KeepAlive = true;
+ ///
+ /// 获取或设置一个值,该值指示是否与 Internet 资源建立持久性连接默认为true。
+ ///
+ public Boolean KeepAlive
+ {
+ get { return _KeepAlive; }
+ set { _KeepAlive = value; }
+ }
+ string _Accept = "text/html, application/xhtml+xml, */*";
+ ///
+ /// 请求标头值 默认为text/html, application/xhtml+xml, */*
+ ///
+ public string Accept
+ {
+ get { return _Accept; }
+ set { _Accept = value; }
+ }
+ string _ContentType = "text/html";
+ ///
+ /// 请求返回类型默认 text/html
+ ///
+ public string ContentType
+ {
+ get { return _ContentType; }
+ set { _ContentType = value; }
+ }
+ string _UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
+ ///
+ /// 客户端访问信息默认Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
+ ///
+ public string UserAgent
+ {
+ get { return _UserAgent; }
+ set { _UserAgent = value; }
+ }
+ Encoding _Encoding = null;
+ ///
+ /// 返回数据编码默认为NUll,可以自动识别,一般为utf-8,gbk,gb2312
+ ///
+ public Encoding Encoding
+ {
+ get { return _Encoding; }
+ set { _Encoding = value; }
+ }
+ private PostDataType _PostDataType = PostDataType.String;
+ ///
+ /// Post的数据类型
+ ///
+ public PostDataType PostDataType
+ {
+ get { return _PostDataType; }
+ set { _PostDataType = value; }
+ }
+ string _Postdata = string.Empty;
+ ///
+ /// Post请求时要发送的字符串Post数据
+ ///
+ public string Postdata
+ {
+ get { return _Postdata; }
+ set { _Postdata = value; }
+ }
+ private byte[] _PostdataByte = null;
+ ///
+ /// Post请求时要发送的Byte类型的Post数据
+ ///
+ public byte[] PostdataByte
+ {
+ get { return _PostdataByte; }
+ set { _PostdataByte = value; }
+ }
+ private WebProxy _WebProxy;
+ ///
+ /// 设置代理对象,不想使用IE默认配置就设置为Null,而且不要设置ProxyIp
+ ///
+ public WebProxy WebProxy
+ {
+ get { return _WebProxy; }
+ set { _WebProxy = value; }
+ }
+
+ CookieCollection cookiecollection = null;
+ ///
+ /// Cookie对象集合
+ ///
+ public CookieCollection CookieCollection
+ {
+ get { return cookiecollection; }
+ set { cookiecollection = value; }
+ }
+ string _Cookie = string.Empty;
+ ///
+ /// 请求时的Cookie
+ ///
+ public string Cookie
+ {
+ get { return _Cookie; }
+ set { _Cookie = value; }
+ }
+ string _Referer = string.Empty;
+ ///
+ /// 来源地址,上次访问地址
+ ///
+ public string Referer
+ {
+ get { return _Referer; }
+ set { _Referer = value; }
+ }
+ string _CerPath = string.Empty;
+ ///
+ /// 证书绝对路径
+ ///
+ public string CerPath
+ {
+ get { return _CerPath; }
+ set { _CerPath = value; }
+ }
+ private Boolean isToLower = false;
+ ///
+ /// 是否设置为全文小写,默认为不转化
+ ///
+ public Boolean IsToLower
+ {
+ get { return isToLower; }
+ set { isToLower = value; }
+ }
+ private Boolean allowautoredirect = false;
+ ///
+ /// 支持跳转页面,查询结果将是跳转后的页面,默认是不跳转
+ ///
+ public Boolean Allowautoredirect
+ {
+ get { return allowautoredirect; }
+ set { allowautoredirect = value; }
+ }
+ private int connectionlimit = 1024;
+ ///
+ /// 最大连接数
+ ///
+ public int Connectionlimit
+ {
+ get { return connectionlimit; }
+ set { connectionlimit = value; }
+ }
+ private string proxyusername = string.Empty;
+ ///
+ /// 代理Proxy 服务器用户名
+ ///
+ public string ProxyUserName
+ {
+ get { return proxyusername; }
+ set { proxyusername = value; }
+ }
+ private string proxypwd = string.Empty;
+ ///
+ /// 代理 服务器密码
+ ///
+ public string ProxyPwd
+ {
+ get { return proxypwd; }
+ set { proxypwd = value; }
+ }
+ private string proxyip = string.Empty;
+ ///
+ /// 代理 服务IP ,如果要使用IE代理就设置为ieproxy
+ ///
+ public string ProxyIp
+ {
+ get { return proxyip; }
+ set { proxyip = value; }
+ }
+ private ResultType resulttype = ResultType.String;
+ ///
+ /// 设置返回类型String和Byte
+ ///
+ public ResultType ResultType
+ {
+ get { return resulttype; }
+ set { resulttype = value; }
+ }
+ private WebHeaderCollection header = new WebHeaderCollection();
+ ///
+ /// header对象
+ ///
+ public WebHeaderCollection Header
+ {
+ get { return header; }
+ set { header = value; }
+ }
+
+ private Version _ProtocolVersion;
+
+ ///
+ // 获取或设置用于请求的 HTTP 版本。返回结果:用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11。
+ ///
+ public Version ProtocolVersion
+ {
+ get { return _ProtocolVersion; }
+ set { _ProtocolVersion = value; }
+ }
+ private Boolean _expect100continue = true;
+ ///
+ /// 获取或设置一个 System.Boolean 值,该值确定是否使用 100-Continue 行为。如果 POST 请求需要 100-Continue 响应,则为 true;否则为 false。默认值为 true。
+ ///
+ public Boolean Expect100Continue
+ {
+ get { return _expect100continue; }
+ set { _expect100continue = value; }
+ }
+ private X509CertificateCollection _ClentCertificates;
+ ///
+ /// 设置509证书集合
+ ///
+ public X509CertificateCollection ClentCertificates
+ {
+ get { return _ClentCertificates; }
+ set { _ClentCertificates = value; }
+ }
+ private Encoding _PostEncoding;
+ ///
+ /// 设置或获取Post参数编码,默认的为Default编码
+ ///
+ public Encoding PostEncoding
+ {
+ get { return _PostEncoding; }
+ set { _PostEncoding = value; }
+ }
+ private ResultCookieType _ResultCookieType = ResultCookieType.String;
+ ///
+ /// Cookie返回类型,默认的是只返回字符串类型
+ ///
+ public ResultCookieType ResultCookieType
+ {
+ get { return _ResultCookieType; }
+ set { _ResultCookieType = value; }
+ }
+
+ private ICredentials _ICredentials = CredentialCache.DefaultCredentials;
+ ///
+ /// 获取或设置请求的身份验证信息。
+ ///
+ public ICredentials ICredentials
+ {
+ get { return _ICredentials; }
+ set { _ICredentials = value; }
+ }
+ ///
+ /// 设置请求将跟随的重定向的最大数目
+ ///
+ public int MaximumAutomaticRedirections { get; set; }
+
+ private DateTime? _IfModifiedSince = null;
+ ///
+ /// 获取和设置IfModifiedSince,默认为当前日期和时间
+ ///
+ public DateTime? IfModifiedSince
+ {
+ get { return _IfModifiedSince; }
+ set { _IfModifiedSince = value; }
+ }
+
+ }
+ ///
+ /// Http返回参数类
+ ///
+ public class HttpResult
+ {
+ private string _Cookie;
+ ///
+ /// Http请求返回的Cookie
+ ///
+ public string Cookie
+ {
+ get { return _Cookie; }
+ set { _Cookie = value; }
+ }
+
+ private CookieCollection _CookieCollection;
+ ///
+ /// Cookie对象集合
+ ///
+ public CookieCollection CookieCollection
+ {
+ get { return _CookieCollection; }
+ set { _CookieCollection = value; }
+ }
+ private string _Html;
+ ///
+ /// 返回的String类型数据 只有ResultType.String时才返回数据,其它情况为空
+ ///
+ public string Html
+ {
+ get { return _Html; }
+ set { _Html = value; }
+ }
+ private byte[] _ResultByte;
+ ///
+ /// 返回的Byte数组 只有ResultType.Byte时才返回数据,其它情况为空
+ ///
+ public byte[] ResultByte
+ {
+ get { return _ResultByte; }
+ set { _ResultByte = value; }
+ }
+
+ private WebHeaderCollection _Header;
+ ///
+ /// header对象
+ ///
+ public WebHeaderCollection Header
+ {
+ get { return _Header; }
+ set { _Header = value; }
+ }
+
+ private string _StatusDescription;
+ ///
+ /// 返回状态说明
+ ///
+ public string StatusDescription
+ {
+ get { return _StatusDescription; }
+ set { _StatusDescription = value; }
+ }
+ private HttpStatusCode _StatusCode;
+ ///
+ /// 返回状态码,默认为OK
+ ///
+ public HttpStatusCode StatusCode
+ {
+ get { return _StatusCode; }
+ set { _StatusCode = value; }
+ }
+ }
+ ///
+ /// 返回类型
+ ///
+ public enum ResultType
+ {
+ ///
+ /// 表示只返回字符串 只有Html有数据
+ ///
+ String,
+ ///
+ /// 表示返回字符串和字节流 ResultByte和Html都有数据返回
+ ///
+ Byte
+ }
+ ///
+ /// Post的数据格式默认为string
+ ///
+ public enum PostDataType
+ {
+ ///
+ /// 字符串类型,这时编码Encoding可不设置
+ ///
+ String,
+ ///
+ /// Byte类型,需要设置PostdataByte参数的值编码Encoding可设置为空
+ ///
+ Byte,
+ ///
+ /// 传文件,Postdata必须设置为文件的绝对路径,必须设置Encoding的值
+ ///
+ FilePath
+ }
+ ///
+ /// Cookie返回类型
+ ///
+ public enum ResultCookieType
+ {
+ ///
+ /// 只返回字符串类型的Cookie
+ ///
+ String,
+ ///
+ /// CookieCollection格式的Cookie集合同时也返回String类型的cookie
+ ///
+ CookieCollection
+ }
+}
\ No newline at end of file
diff --git a/KanColleJ/KanColleJ.csproj b/KanColleJ/KanColleJ.csproj
new file mode 100644
index 0000000..4a665b6
--- /dev/null
+++ b/KanColleJ/KanColleJ.csproj
@@ -0,0 +1,70 @@
+
+
+
+ Debug
+ x86
+ {D4942E8B-F12E-4372-A76D-B0FE8C2A2CF5}
+ WinExe
+ KanColleJ
+ KanColleJ
+ v4.5
+
+
+ true
+ full
+ false
+ bin\Debug
+ DEBUG;
+ prompt
+ 4
+ false
+ x86
+
+
+ full
+ true
+ bin\Release
+ prompt
+ 4
+ false
+ x86
+
+
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+
+
+
+ gui.stetic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KanColleJ/MainWindow.cs b/KanColleJ/MainWindow.cs
new file mode 100644
index 0000000..c846266
--- /dev/null
+++ b/KanColleJ/MainWindow.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Threading;
+using TimersTimer = System.Timers.Timer;
+using DotNet.Utilities;
+using Gtk;
+
+public partial class MainWindow: Gtk.Window
+{
+ private int counter = 0;
+ private object _timerLock = new object();
+ private TimersTimer _TimersTimer = new TimersTimer();
+
+ public MainWindow () : base (Gtk.WindowType.Toplevel)
+ {
+ Build ();
+ }
+
+ protected void OnDeleteEvent (object sender, DeleteEventArgs a)
+ {
+ Application.Quit ();
+ a.RetVal = true;
+ }
+
+ protected void _TimersTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
+ if (!Monitor.TryEnter(_timerLock))
+ {
+ return;
+ }
+ try
+ {
+ Monitor.Enter(_timerLock);
+ Random ran = new Random();
+ HttpHelper http = new HttpHelper();
+ HttpItem item = new HttpItem()
+ {
+ URL = txt_url.Text,
+ Method = "POST",
+ Timeout = 10000,
+ ReadWriteTimeout = 3000,
+ IsToLower = false,
+ Cookie = txt_cookie.Text,
+ UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0",
+ Accept = "text/html, application/xhtml+xml, */*",
+ ContentType = "application/x-www-form-urlencoded",
+ Referer = txt_url.Text,
+ Postdata = "name="+ran.Next()+"&password="+ran.Next()+"&world=1&seccode="+txt_captcha.Text+"®istersubmit=%E6%8F%90%E4%BA%A4",
+ };
+ HttpResult result = http.GetHtml(item);
+ string html = result.Html;
+ //string cookie = result.Cookie;
+ //byte[] b = result.ResultByte;
+ Console.WriteLine(html);
+ //http.GetHtml(item);
+ this.counter++;
+ this.lbl_count.Text = "已发送: " + this.counter + " 次";
+ }
+ finally
+ {
+ Monitor.Exit(_timerLock);
+ }
+ }
+
+ protected void startstopatk (object sender, EventArgs e)
+ {
+ if (btn_startstop.Label == "开始(_S)") {
+ btn_startstop.Label = "停止(_S)";
+ this._TimersTimer.Interval = Convert.ToInt32(1000 / hs_speed.Adjustment.Value);
+ this._TimersTimer.Elapsed += new System.Timers.ElapsedEventHandler(_TimersTimer_Elapsed);
+ //this._TimersTimer.SynchronizingObject = lbl_count;
+ this._TimersTimer.Start ();
+ } else {
+ btn_startstop.Label = "开始(_S)";
+ this._TimersTimer.Stop ();
+ }
+ }
+
+ protected void licensecheck (object sender, EventArgs e)
+ {
+ if (chk_license.Active==false) {
+ btn_startstop.Sensitive = false;
+ MessageDialog md = new MessageDialog (this,
+ DialogFlags.DestroyWithParent,
+ MessageType.Error,
+ ButtonsType.Close, "未同意协议,不能使用");
+ md.Run ();
+ md.Destroy ();
+ } else {
+ btn_startstop.Sensitive = true;
+ }
+ }
+}
diff --git a/KanColleJ/Program.cs b/KanColleJ/Program.cs
new file mode 100644
index 0000000..2f5c043
--- /dev/null
+++ b/KanColleJ/Program.cs
@@ -0,0 +1,16 @@
+using System;
+using Gtk;
+
+namespace KanColleJ
+{
+ class MainClass
+ {
+ public static void Main (string[] args)
+ {
+ Application.Init ();
+ MainWindow win = new MainWindow ();
+ win.Show ();
+ Application.Run ();
+ }
+ }
+}
diff --git a/KanColleJ/Properties/AssemblyInfo.cs b/KanColleJ/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..62d5182
--- /dev/null
+++ b/KanColleJ/Properties/AssemblyInfo.cs
@@ -0,0 +1,27 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle ("KanColleJ")]
+[assembly: AssemblyDescription ("")]
+[assembly: AssemblyConfiguration ("")]
+[assembly: AssemblyCompany ("")]
+[assembly: AssemblyProduct ("")]
+[assembly: AssemblyCopyright ("chino")]
+[assembly: AssemblyTrademark ("")]
+[assembly: AssemblyCulture ("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion ("1.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
+
diff --git a/KanColleJ/bin/Debug/KanColleJ.exe b/KanColleJ/bin/Debug/KanColleJ.exe
new file mode 100755
index 0000000..167c2f3
Binary files /dev/null and b/KanColleJ/bin/Debug/KanColleJ.exe differ
diff --git a/KanColleJ/bin/Debug/KanColleJ.exe.mdb b/KanColleJ/bin/Debug/KanColleJ.exe.mdb
new file mode 100644
index 0000000..7be09d4
Binary files /dev/null and b/KanColleJ/bin/Debug/KanColleJ.exe.mdb differ
diff --git a/KanColleJ/bin/Release/KanColleJ.exe b/KanColleJ/bin/Release/KanColleJ.exe
new file mode 100755
index 0000000..2860373
Binary files /dev/null and b/KanColleJ/bin/Release/KanColleJ.exe differ
diff --git a/KanColleJ/bin/Release/KanColleJ.exe.mdb b/KanColleJ/bin/Release/KanColleJ.exe.mdb
new file mode 100644
index 0000000..a9c57e0
Binary files /dev/null and b/KanColleJ/bin/Release/KanColleJ.exe.mdb differ
diff --git a/KanColleJ/bin/Release/start.mac b/KanColleJ/bin/Release/start.mac
new file mode 100755
index 0000000..cd254b3
--- /dev/null
+++ b/KanColleJ/bin/Release/start.mac
@@ -0,0 +1,5 @@
+!/bin/sh
+
+export DYLD_FALLBACK_LIBRARY_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib:$DYLD_FALLBACK_LIBRARY_PATH:/usr/lib"
+
+exec /Library/Frameworks/Mono.framework/Versions/Current/bin/mono ./KanColleJ.exe
diff --git a/KanColleJ/gtk-gui/MainWindow.cs b/KanColleJ/gtk-gui/MainWindow.cs
new file mode 100644
index 0000000..a718392
--- /dev/null
+++ b/KanColleJ/gtk-gui/MainWindow.cs
@@ -0,0 +1,230 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+
+public partial class MainWindow
+{
+ private global::Gtk.HBox hbox3;
+
+ private global::Gtk.Image image4;
+
+ private global::Gtk.VBox vbox2;
+
+ private global::Gtk.HBox hbox5;
+
+ private global::Gtk.Label label1;
+
+ private global::Gtk.Entry txt_url;
+
+ private global::Gtk.HBox hbox6;
+
+ private global::Gtk.Label label2;
+
+ private global::Gtk.HScale hs_speed;
+
+ private global::Gtk.HBox hbox7;
+
+ private global::Gtk.Label label4;
+
+ private global::Gtk.Entry txt_cookie;
+
+ private global::Gtk.HBox hbox4;
+
+ private global::Gtk.Label label5;
+
+ private global::Gtk.Entry txt_captcha;
+
+ private global::Gtk.CheckButton chk_license;
+
+ private global::Gtk.Button btn_startstop;
+
+ private global::Gtk.Label lbl_count;
+
+ protected virtual void Build ()
+ {
+ global::Stetic.Gui.Initialize (this);
+ // Widget MainWindow
+ this.Name = "MainWindow";
+ this.Title = global::Mono.Unix.Catalog.GetString ("Test their database, poi!");
+ this.WindowPosition = ((global::Gtk.WindowPosition)(1));
+ this.BorderWidth = ((uint)(3));
+ this.Resizable = false;
+ // Container child MainWindow.Gtk.Container+ContainerChild
+ this.hbox3 = new global::Gtk.HBox ();
+ this.hbox3.Name = "hbox3";
+ this.hbox3.Spacing = 6;
+ // Container child hbox3.Gtk.Box+BoxChild
+ this.image4 = new global::Gtk.Image ();
+ this.image4.Name = "image4";
+ this.image4.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("KanColleJ.Bt3vyaX.jpg");
+ this.hbox3.Add (this.image4);
+ global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.hbox3 [this.image4]));
+ w1.Position = 0;
+ w1.Expand = false;
+ w1.Fill = false;
+ // Container child hbox3.Gtk.Box+BoxChild
+ this.vbox2 = new global::Gtk.VBox ();
+ this.vbox2.Name = "vbox2";
+ this.vbox2.Spacing = 6;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.hbox5 = new global::Gtk.HBox ();
+ this.hbox5.Name = "hbox5";
+ this.hbox5.Spacing = 6;
+ // Container child hbox5.Gtk.Box+BoxChild
+ this.label1 = new global::Gtk.Label ();
+ this.label1.Name = "label1";
+ this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("登录页面");
+ this.hbox5.Add (this.label1);
+ global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox5 [this.label1]));
+ w2.Position = 0;
+ w2.Expand = false;
+ w2.Fill = false;
+ // Container child hbox5.Gtk.Box+BoxChild
+ this.txt_url = new global::Gtk.Entry ();
+ this.txt_url.CanFocus = true;
+ this.txt_url.Name = "txt_url";
+ this.txt_url.Text = global::Mono.Unix.Catalog.GetString ("http://gc.moejn.cn/login.html");
+ this.txt_url.IsEditable = true;
+ this.txt_url.InvisibleChar = '●';
+ this.hbox5.Add (this.txt_url);
+ global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox5 [this.txt_url]));
+ w3.Position = 1;
+ this.vbox2.Add (this.hbox5);
+ global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox5]));
+ w4.Position = 0;
+ w4.Expand = false;
+ w4.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.hbox6 = new global::Gtk.HBox ();
+ this.hbox6.Name = "hbox6";
+ this.hbox6.Spacing = 6;
+ // Container child hbox6.Gtk.Box+BoxChild
+ this.label2 = new global::Gtk.Label ();
+ this.label2.Name = "label2";
+ this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("提交速度");
+ this.hbox6.Add (this.label2);
+ global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox6 [this.label2]));
+ w5.Position = 0;
+ w5.Expand = false;
+ w5.Fill = false;
+ // Container child hbox6.Gtk.Box+BoxChild
+ this.hs_speed = new global::Gtk.HScale (null);
+ this.hs_speed.CanFocus = true;
+ this.hs_speed.Name = "hs_speed";
+ this.hs_speed.Adjustment.Lower = 1;
+ this.hs_speed.Adjustment.Upper = 100;
+ this.hs_speed.Adjustment.PageIncrement = 10;
+ this.hs_speed.Adjustment.StepIncrement = 1;
+ this.hs_speed.Adjustment.Value = 10;
+ this.hs_speed.DrawValue = true;
+ this.hs_speed.Digits = 0;
+ this.hs_speed.ValuePos = ((global::Gtk.PositionType)(2));
+ this.hbox6.Add (this.hs_speed);
+ global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox6 [this.hs_speed]));
+ w6.Position = 1;
+ this.vbox2.Add (this.hbox6);
+ global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox6]));
+ w7.Position = 1;
+ w7.Expand = false;
+ w7.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.hbox7 = new global::Gtk.HBox ();
+ this.hbox7.Name = "hbox7";
+ this.hbox7.Spacing = 6;
+ // Container child hbox7.Gtk.Box+BoxChild
+ this.label4 = new global::Gtk.Label ();
+ this.label4.Name = "label4";
+ this.label4.LabelProp = global::Mono.Unix.Catalog.GetString (" Cookies ");
+ this.hbox7.Add (this.label4);
+ global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox7 [this.label4]));
+ w8.Position = 0;
+ w8.Expand = false;
+ w8.Fill = false;
+ // Container child hbox7.Gtk.Box+BoxChild
+ this.txt_cookie = new global::Gtk.Entry ();
+ this.txt_cookie.CanFocus = true;
+ this.txt_cookie.Name = "txt_cookie";
+ this.txt_cookie.IsEditable = true;
+ this.txt_cookie.InvisibleChar = '●';
+ this.hbox7.Add (this.txt_cookie);
+ global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox7 [this.txt_cookie]));
+ w9.Position = 1;
+ this.vbox2.Add (this.hbox7);
+ global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox7]));
+ w10.Position = 2;
+ w10.Expand = false;
+ w10.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.hbox4 = new global::Gtk.HBox ();
+ this.hbox4.Name = "hbox4";
+ this.hbox4.Spacing = 6;
+ // Container child hbox4.Gtk.Box+BoxChild
+ this.label5 = new global::Gtk.Label ();
+ this.label5.Name = "label5";
+ this.label5.LabelProp = global::Mono.Unix.Catalog.GetString (" 验 证 码 ");
+ this.hbox4.Add (this.label5);
+ global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox4 [this.label5]));
+ w11.Position = 0;
+ w11.Expand = false;
+ w11.Fill = false;
+ // Container child hbox4.Gtk.Box+BoxChild
+ this.txt_captcha = new global::Gtk.Entry ();
+ this.txt_captcha.CanFocus = true;
+ this.txt_captcha.Name = "txt_captcha";
+ this.txt_captcha.IsEditable = true;
+ this.txt_captcha.InvisibleChar = '●';
+ this.hbox4.Add (this.txt_captcha);
+ global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.hbox4 [this.txt_captcha]));
+ w12.Position = 1;
+ this.vbox2.Add (this.hbox4);
+ global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox4]));
+ w13.Position = 3;
+ w13.Expand = false;
+ w13.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.chk_license = new global::Gtk.CheckButton ();
+ this.chk_license.CanFocus = true;
+ this.chk_license.Name = "chk_license";
+ this.chk_license.Label = global::Mono.Unix.Catalog.GetString ("我同意我仅将本软件用于实验用途,作者不承担任何由于直接或间接造成的危害的法律责任");
+ this.chk_license.DrawIndicator = true;
+ this.chk_license.UseUnderline = true;
+ this.vbox2.Add (this.chk_license);
+ global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.chk_license]));
+ w14.Position = 4;
+ w14.Expand = false;
+ w14.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.btn_startstop = new global::Gtk.Button ();
+ this.btn_startstop.Sensitive = false;
+ this.btn_startstop.CanFocus = true;
+ this.btn_startstop.Name = "btn_startstop";
+ this.btn_startstop.UseUnderline = true;
+ this.btn_startstop.Label = global::Mono.Unix.Catalog.GetString ("开始(_S)");
+ this.vbox2.Add (this.btn_startstop);
+ global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.btn_startstop]));
+ w15.Position = 5;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.lbl_count = new global::Gtk.Label ();
+ this.lbl_count.Name = "lbl_count";
+ this.lbl_count.LabelProp = global::Mono.Unix.Catalog.GetString ("已发送: 0 次");
+ this.vbox2.Add (this.lbl_count);
+ global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.lbl_count]));
+ w16.Position = 6;
+ w16.Expand = false;
+ w16.Fill = false;
+ this.hbox3.Add (this.vbox2);
+ global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.hbox3 [this.vbox2]));
+ w17.Position = 1;
+ w17.Expand = false;
+ w17.Fill = false;
+ this.Add (this.hbox3);
+ if ((this.Child != null)) {
+ this.Child.ShowAll ();
+ }
+ this.DefaultWidth = 673;
+ this.DefaultHeight = 486;
+ this.Show ();
+ this.DeleteEvent += new global::Gtk.DeleteEventHandler (this.OnDeleteEvent);
+ this.chk_license.Clicked += new global::System.EventHandler (this.licensecheck);
+ this.btn_startstop.Clicked += new global::System.EventHandler (this.startstopatk);
+ }
+}
diff --git a/KanColleJ/gtk-gui/generated.cs b/KanColleJ/gtk-gui/generated.cs
new file mode 100644
index 0000000..1339d6f
--- /dev/null
+++ b/KanColleJ/gtk-gui/generated.cs
@@ -0,0 +1,33 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace Stetic
+{
+ internal class Gui
+ {
+ private static bool initialized;
+
+ internal static void Initialize (Gtk.Widget iconRenderer)
+ {
+ if ((Stetic.Gui.initialized == false)) {
+ Stetic.Gui.initialized = true;
+ global::Gtk.IconFactory w1 = new global::Gtk.IconFactory ();
+ global::Gtk.IconSet w2 = new global::Gtk.IconSet (global::Gdk.Pixbuf.LoadFromResource ("KanColleJ.01300000185581123115303798073.jpg"));
+ w1.Add ("ATK", w2);
+ w1.AddDefault ();
+ }
+ }
+ }
+
+ internal class ActionGroups
+ {
+ public static Gtk.ActionGroup GetActionGroup (System.Type type)
+ {
+ return Stetic.ActionGroups.GetActionGroup (type.FullName);
+ }
+
+ public static Gtk.ActionGroup GetActionGroup (string name)
+ {
+ return null;
+ }
+ }
+}
diff --git a/KanColleJ/gtk-gui/gui.stetic b/KanColleJ/gtk-gui/gui.stetic
new file mode 100644
index 0000000..e7c4305
--- /dev/null
+++ b/KanColleJ/gtk-gui/gui.stetic
@@ -0,0 +1,250 @@
+
+
+
+ ..
+
+
+
+
+
+
+
+
+
+
+
+
+ Test their database, poi!
+ Center
+ 3
+ False
+
+
+
+
+ 6
+
+
+
+ resource:KanColleJ.Bt3vyaX.jpg
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ 6
+
+
+
+ 登录页面
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ http://gc.moejn.cn/login.html
+ True
+ ●
+
+
+ 1
+ False
+
+
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ 提交速度
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ 1
+ 100
+ 10
+ 1
+ 10
+ True
+ 0
+ Top
+
+
+ 1
+ True
+
+
+
+
+ 1
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ Cookies
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ True
+ ●
+
+
+ 1
+ True
+
+
+
+
+ 2
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ 验 证 码
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ True
+ ●
+
+
+ 1
+ True
+
+
+
+
+ 3
+ True
+ False
+ False
+
+
+
+
+
+ True
+ 我同意我仅将本软件用于实验用途,作者不承担任何由于直接或间接造成的危害的法律责任
+ True
+ True
+ True
+
+
+
+ 4
+ True
+ False
+ False
+
+
+
+
+
+ False
+ True
+ TextOnly
+ 开始(_S)
+ True
+
+
+
+ 5
+ False
+
+
+
+
+
+ 已发送: 0 次
+
+
+ 6
+ True
+ False
+ False
+
+
+
+
+ 1
+ True
+ False
+ False
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KanColleJ/obj/x86/Debug/.NETFramework,Version=v4.5.AssemblyAttribute.cs b/KanColleJ/obj/x86/Debug/.NETFramework,Version=v4.5.AssemblyAttribute.cs
new file mode 100644
index 0000000..fdcb678
--- /dev/null
+++ b/KanColleJ/obj/x86/Debug/.NETFramework,Version=v4.5.AssemblyAttribute.cs
@@ -0,0 +1,2 @@
+//
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = "")]
diff --git a/KanColleJ/obj/x86/Debug/KanColleJ.01300000185581123115303798073.jpg b/KanColleJ/obj/x86/Debug/KanColleJ.01300000185581123115303798073.jpg
new file mode 100644
index 0000000..730dd78
Binary files /dev/null and b/KanColleJ/obj/x86/Debug/KanColleJ.01300000185581123115303798073.jpg differ
diff --git a/KanColleJ/obj/x86/Debug/KanColleJ.Bt3vyaX.jpg b/KanColleJ/obj/x86/Debug/KanColleJ.Bt3vyaX.jpg
new file mode 100644
index 0000000..676244e
Binary files /dev/null and b/KanColleJ/obj/x86/Debug/KanColleJ.Bt3vyaX.jpg differ
diff --git a/KanColleJ/obj/x86/Debug/KanColleJ.csproj.FilesWrittenAbsolute.txt b/KanColleJ/obj/x86/Debug/KanColleJ.csproj.FilesWrittenAbsolute.txt
new file mode 100644
index 0000000..b9d32cc
--- /dev/null
+++ b/KanColleJ/obj/x86/Debug/KanColleJ.csproj.FilesWrittenAbsolute.txt
@@ -0,0 +1,8 @@
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Debug/.NETFramework,Version=v4.5.AssemblyAttribute.cs
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Debug/KanColleJ.gtk-gui.gui.stetic
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Debug/KanColleJ.Bt3vyaX.jpg
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/bin/Debug/KanColleJ.exe.mdb
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/bin/Debug/KanColleJ.exe
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Debug/KanColleJ.exe
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Debug/KanColleJ.exe.mdb
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Debug/KanColleJ.01300000185581123115303798073.jpg
diff --git a/KanColleJ/obj/x86/Debug/KanColleJ.exe b/KanColleJ/obj/x86/Debug/KanColleJ.exe
new file mode 100755
index 0000000..167c2f3
Binary files /dev/null and b/KanColleJ/obj/x86/Debug/KanColleJ.exe differ
diff --git a/KanColleJ/obj/x86/Debug/KanColleJ.exe.mdb b/KanColleJ/obj/x86/Debug/KanColleJ.exe.mdb
new file mode 100644
index 0000000..7be09d4
Binary files /dev/null and b/KanColleJ/obj/x86/Debug/KanColleJ.exe.mdb differ
diff --git a/KanColleJ/obj/x86/Debug/KanColleJ.gtk-gui.gui.stetic b/KanColleJ/obj/x86/Debug/KanColleJ.gtk-gui.gui.stetic
new file mode 100644
index 0000000..e7c4305
--- /dev/null
+++ b/KanColleJ/obj/x86/Debug/KanColleJ.gtk-gui.gui.stetic
@@ -0,0 +1,250 @@
+
+
+
+ ..
+
+
+
+
+
+
+
+
+
+
+
+
+ Test their database, poi!
+ Center
+ 3
+ False
+
+
+
+
+ 6
+
+
+
+ resource:KanColleJ.Bt3vyaX.jpg
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ 6
+
+
+
+ 登录页面
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ http://gc.moejn.cn/login.html
+ True
+ ●
+
+
+ 1
+ False
+
+
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ 提交速度
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ 1
+ 100
+ 10
+ 1
+ 10
+ True
+ 0
+ Top
+
+
+ 1
+ True
+
+
+
+
+ 1
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ Cookies
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ True
+ ●
+
+
+ 1
+ True
+
+
+
+
+ 2
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ 验 证 码
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ True
+ ●
+
+
+ 1
+ True
+
+
+
+
+ 3
+ True
+ False
+ False
+
+
+
+
+
+ True
+ 我同意我仅将本软件用于实验用途,作者不承担任何由于直接或间接造成的危害的法律责任
+ True
+ True
+ True
+
+
+
+ 4
+ True
+ False
+ False
+
+
+
+
+
+ False
+ True
+ TextOnly
+ 开始(_S)
+ True
+
+
+
+ 5
+ False
+
+
+
+
+
+ 已发送: 0 次
+
+
+ 6
+ True
+ False
+ False
+
+
+
+
+ 1
+ True
+ False
+ False
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KanColleJ/obj/x86/Release/.NETFramework,Version=v4.5.AssemblyAttribute.cs b/KanColleJ/obj/x86/Release/.NETFramework,Version=v4.5.AssemblyAttribute.cs
new file mode 100644
index 0000000..fdcb678
--- /dev/null
+++ b/KanColleJ/obj/x86/Release/.NETFramework,Version=v4.5.AssemblyAttribute.cs
@@ -0,0 +1,2 @@
+//
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = "")]
diff --git a/KanColleJ/obj/x86/Release/KanColleJ.01300000185581123115303798073.jpg b/KanColleJ/obj/x86/Release/KanColleJ.01300000185581123115303798073.jpg
new file mode 100644
index 0000000..730dd78
Binary files /dev/null and b/KanColleJ/obj/x86/Release/KanColleJ.01300000185581123115303798073.jpg differ
diff --git a/KanColleJ/obj/x86/Release/KanColleJ.Bt3vyaX.jpg b/KanColleJ/obj/x86/Release/KanColleJ.Bt3vyaX.jpg
new file mode 100644
index 0000000..676244e
Binary files /dev/null and b/KanColleJ/obj/x86/Release/KanColleJ.Bt3vyaX.jpg differ
diff --git a/KanColleJ/obj/x86/Release/KanColleJ.csproj.FilesWrittenAbsolute.txt b/KanColleJ/obj/x86/Release/KanColleJ.csproj.FilesWrittenAbsolute.txt
new file mode 100644
index 0000000..ec4733c
--- /dev/null
+++ b/KanColleJ/obj/x86/Release/KanColleJ.csproj.FilesWrittenAbsolute.txt
@@ -0,0 +1,8 @@
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Release/.NETFramework,Version=v4.5.AssemblyAttribute.cs
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Release/KanColleJ.gtk-gui.gui.stetic
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Release/KanColleJ.Bt3vyaX.jpg
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Release/KanColleJ.01300000185581123115303798073.jpg
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/bin/Release/KanColleJ.exe.mdb
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/bin/Release/KanColleJ.exe
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Release/KanColleJ.exe
+/Volumes/Transcend/Development/dotNet/KanColleJ/KanColleJ/obj/x86/Release/KanColleJ.exe.mdb
diff --git a/KanColleJ/obj/x86/Release/KanColleJ.exe b/KanColleJ/obj/x86/Release/KanColleJ.exe
new file mode 100755
index 0000000..2860373
Binary files /dev/null and b/KanColleJ/obj/x86/Release/KanColleJ.exe differ
diff --git a/KanColleJ/obj/x86/Release/KanColleJ.exe.mdb b/KanColleJ/obj/x86/Release/KanColleJ.exe.mdb
new file mode 100644
index 0000000..a9c57e0
Binary files /dev/null and b/KanColleJ/obj/x86/Release/KanColleJ.exe.mdb differ
diff --git a/KanColleJ/obj/x86/Release/KanColleJ.gtk-gui.gui.stetic b/KanColleJ/obj/x86/Release/KanColleJ.gtk-gui.gui.stetic
new file mode 100644
index 0000000..e7c4305
--- /dev/null
+++ b/KanColleJ/obj/x86/Release/KanColleJ.gtk-gui.gui.stetic
@@ -0,0 +1,250 @@
+
+
+
+ ..
+
+
+
+
+
+
+
+
+
+
+
+
+ Test their database, poi!
+ Center
+ 3
+ False
+
+
+
+
+ 6
+
+
+
+ resource:KanColleJ.Bt3vyaX.jpg
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ 6
+
+
+
+ 登录页面
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ http://gc.moejn.cn/login.html
+ True
+ ●
+
+
+ 1
+ False
+
+
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ 提交速度
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ 1
+ 100
+ 10
+ 1
+ 10
+ True
+ 0
+ Top
+
+
+ 1
+ True
+
+
+
+
+ 1
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ Cookies
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ True
+ ●
+
+
+ 1
+ True
+
+
+
+
+ 2
+ True
+ False
+ False
+
+
+
+
+
+ 6
+
+
+
+ 验 证 码
+
+
+ 0
+ True
+ False
+ False
+
+
+
+
+
+ True
+ True
+ ●
+
+
+ 1
+ True
+
+
+
+
+ 3
+ True
+ False
+ False
+
+
+
+
+
+ True
+ 我同意我仅将本软件用于实验用途,作者不承担任何由于直接或间接造成的危害的法律责任
+ True
+ True
+ True
+
+
+
+ 4
+ True
+ False
+ False
+
+
+
+
+
+ False
+ True
+ TextOnly
+ 开始(_S)
+ True
+
+
+
+ 5
+ False
+
+
+
+
+
+ 已发送: 0 次
+
+
+ 6
+ True
+ False
+ False
+
+
+
+
+ 1
+ True
+ False
+ False
+
+
+
+
+
+
\ No newline at end of file