diff --git a/Autoloader.php b/Autoloader.php new file mode 100644 index 0000000..72fe979 --- /dev/null +++ b/Autoloader.php @@ -0,0 +1,13 @@ +=5.3" + }, + "autoload": { + "psr-0": { + "CoolQ": "src/" + } + } +} \ No newline at end of file diff --git a/src/CoolQSDK/CQ.php b/src/CoolQSDK/CQ.php new file mode 100644 index 0000000..a8a1978 --- /dev/null +++ b/src/CoolQSDK/CQ.php @@ -0,0 +1,101 @@ +token = $TOKEN; + $this->host = $HOST; + $this->post = $POST; + $this->path = $HOST . ':' . $this->post . '/'; + } + + /** + * /get_login_info 获取登录号信息 + * 参数 + * 无 + * 响应数据 + * 字段名 数据类型 说明 + * user_id number QQ 号 + * nickname string QQ 昵称 + * @return string json + * { + * "status": "ok", + * "retcode": 0, + * "data": { + * "user_id": 1246002938, + * "nickname": "机器人不知道多少代了" + * } + * } + */ + public function getLoginInfo() + { + $url = $this->path . "get_login_info"; + $res = self::curl_request($url); + return $res; + } + + + /** + * /send_private_msg 发送私聊消息 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $user_id number - 对方 QQ 号 + * @param $message string/array - 要发送的内容 + * @param string $is_raw bool false 消息内容是否作为纯文本发送(即不解析 CQ 码),message 数据类型为 array 时无效 + * @return mixed|string + */ + public function sendPrivateMsg($user_id, $message, $is_raw = false, $is_post = false) + { + if($is_post == false){ + $message = urlencode($message); + $url = $this->path . "send_private_msg?user_id=$user_id&message=$message&is_raw=$is_raw"; + $res = self::curl_request($url); + }else{ + $url = $this->path . "send_private_msg"; + $data['user_id'] = $user_id; + $data['message'] = $message; + $data = json_encode($data,JSON_UNESCAPED_UNICODE); + $res = self::curl_post($url,$data); + } + return $res; + } + + /** + * /send_group_msg 发送群消息 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @param $message string/array - 要发送的内容 + * @param string $is_raw bool false 消息内容是否作为纯文本发送(即不解析 CQ 码),message 数据类型为 array 时无效 + * @return mixed|string + */ + public function sendGroupMsg($group_id, $message, $is_raw = false, $is_post = false) + { + if($is_post == false){ + $message = urlencode($message); + $url = $this->path . "send_group_msg?group_id=$group_id&message=$message&is_raw=$is_raw"; + $res = self::curl_request($url); + }else{ + $url = $this->path . "send_group_msg"; + $data['group_id'] = $group_id; + $data['message'] = $message; + $data = json_encode($data,JSON_UNESCAPED_UNICODE); + $res = self::curl_post($url,$data); + } + return $res; + } + + /** + * /send_discuss_msg 发送讨论组消息 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $discuss_id number - 讨论组 ID(正常情况下看不到,需要从讨论组消息上报的数据中获得) + * @param $message string/array - 要发送的内容 + * @param string $is_raw bool false 消息内容是否作为纯文本发送(即不解析 CQ 码),message 数据类型为 array 时无效 + * @return mixed|string + */ + public function sendDiscussMsg($discuss_id, $message, $is_raw = false, $is_post = false) + { + if($is_post == false){ + $message = urlencode($message); + $url = $this->path . "send_discuss_msg?discuss_id=$discuss_id&message=$message&is_raw=$is_raw"; + $res = self::curl_request($url); + }else{ + $url = $this->path . "send_discuss_msg"; + $data['discuss_id'] = $discuss_id; + $data['message'] = $message; + $data = json_encode($data,JSON_UNESCAPED_UNICODE); + $res = self::curl_post($url,$data); + } + return $res; + } + + /** + * /send_like 发送好友赞 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $user_id number - 对方 QQ 号 + * @param int $times number 1 赞的次数,每个好友每天最多 10 次 + * @return mixed|string + */ + public function sendLike($user_id, $times = 1) + { + $url = $this->path . "send_like?user_id=$user_id×=$times"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_group_kick 群组踢人 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @param $user_id number - 要踢的 QQ 号 + * @param string $reject_add_request bool false 拒绝此人的加群请求 + * @return mixed|string + */ + public function setGroupKick($group_id, $user_id, $reject_add_request = false) + { + $url = $this->path . "set_group_kick?group_id=$group_id&user_id=$user_id&reject_add_request=$reject_add_request"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_group_ban 群组单人禁言 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @param $user_id number - 要禁言的 QQ 号 + * @param int $duration number 30 * 60 禁言时长,单位秒,0 表示取消禁言 + * @return mixed|string + */ + public function setGroupBan($group_id, $user_id, $duration = 30) + { + $duration = $duration * 60; + $url = $this->path . "set_group_ban?group_id=$group_id&user_id=$user_id&duration=$duration"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_group_whole_ban 群组全员禁言 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @param string $enable bool true 是否禁言 + * @return mixed|string + */ + public function setGroupWholeBan($group_id, $enable = true) + { + $url = $this->path . "set_group_whole_ban?group_id=$group_id&enable=$enable"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_group_anonymous_ban 群组匿名用户禁言 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @param $flag string - 要禁言的匿名用户的 flag(需从群消息上报的数据中获得) + * @param int $duration number 30 * 60 禁言时长,单位秒,无法取消匿名用户禁言 + * @return mixed|string + */ + public function setGroupAnonymousBan($group_id, $flag, $duration = 30) + { + $url = $this->path . "set_group_anonymous_ban?group_id=$group_id&flag=$flag&duration=$duration"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_group_admin 群组设置管理员 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @param $user_id number - 要设置管理员的 QQ 号 + * @param string $enable bool true true 为设置,false 为取消 + * @return mixed|string + */ + public function setGroupAdmin($group_id, $user_id, $enable = true) + { + $url = $this->path . "set_group_admin?group_id=$group_id&user_id=$user_id&enable=$enable"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_group_anonymous 群组匿名 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @param string $enable bool true 是否允许匿名聊天 + * @return mixed|string + */ + public function setGroupAnonymous($group_id, $enable = true) + { + $url = $this->path . "set_group_anonymous?group_id=$group_id&enable=$enable"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_group_special_title 设置群组专属头衔 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @param $user_id number - 要设置的 QQ 号 + * @param string $special_title string 空 专属头衔,不填或空字符串表示删除专属头衔 + * @param int $duration number -1 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试 + * @return mixed|string + */ + public function setGroupSpecialTitle($group_id, $user_id, $special_title = "", $duration = -1) + { + $url = $this->path . "set_group_special_title?group_id=$group_id&user_id=$user_id&special_title=$special_title&duration=$duration"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_group_card 设置群名片(群备注) + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @param $user_id number - 要设置的 QQ 号 + * @param $card string 空 群名片内容,不填或空字符串表示删除群名片 + * @return mixed|string + */ + public function setGroupCard($group_id, $user_id, $card) + { + $url = $this->path . "set_group_card?group_id=$group_id&user_id=$user_id&card=$card"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_group_leave 退出群组 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @param string $is_dismiss bool false 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散 + * @return mixed|string + */ + public function setGroupLeave($group_id, $is_dismiss = false) + { + $url = $this->path . "set_group_leave?group_id=$group_id&is_dismiss=$is_dismiss"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_discuss_leave 退出讨论组衔 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $discuss_id number - 讨论组 ID(正常情况下看不到,需要从讨论组消息上报的数据中获得) + * @return mixed|string + */ + public function setDiscussLeave($discuss_id) + { + $url = $this->path . "set_discuss_leave?discuss_id=$discuss_id"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_friend_add_request 处理加好友请求 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $flag string - 加好友请求的 flag(需从上报的数据中获得) + * @param string $approve bool true 是否同意请求 + * @param string $remark string 空 添加后的好友备注(仅在同意时有效) + * @return mixed|string + */ + public function setFriendAddRequest($flag, $approve = true, $remark = "") + { + $url = $this->path . "set_friend_add_request?flag=$flag&approve=$approve&remark=$remark"; + $res = self::curl_request($url); + return $res; + } + + /** + * /set_group_add_request 处理加群请求/邀请 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $flag string - 加好友请求的 flag(需从上报的数据中获得) + * @param $type string - add 或 invite,请求类型(需要和上报消息中的 sub_type 字段相符) + * @param string $approve bool true 是否同意请求/邀请 + * @param string $reason string 空 拒绝理由(仅在拒绝时有效) + * @return mixed|string + */ + public function setGroupAddRequest($flag, $type, $approve = true, $reason = "") + { + $url = $this->path . "set_group_add_request?flag=$flag&type=$type&approve=$approve&remark=$reason"; + $res = self::curl_request($url); + return $res; + } + + /** + * /get_group_list 获取群列表 + * 参数 + * 字段名 数据类型 默认值 说明 + * @return mixed|string + */ + public function getGroupList() + { + $url = $this->path . "get_group_list"; + $res = self::curl_request($url); + return $res; + } + + /** + * /get_group_member_list 获取群成员列表 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @return mixed|string + */ + public function getGroupMemberList($group_id) + { + $url = $this->path . "get_group_member_list?group_id=$group_id"; + $res = self::curl_request($url); + return $res; + } + + + /** + * /get_group_member_info 获取群成员信息 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $group_id number - 群号 + * @param $user_id number - QQ 号(不可以是登录号) + * @param string $no_cache bool false 是否不使用缓存(使用缓存可能更新不及时,但响应更快) + * @return mixed|string + */ + public function getGroupMemberInfo($group_id, $user_id, $no_cache = false) + { + $url = $this->path . "get_group_member_info?group_id=$group_id&user_id=$user_id&no_cache=$no_cache"; + $res = self::curl_request($url); + return $res; + } + + + /** + * /get_stranger_info 获取陌生人信息 + * 参数 + * 字段名 数据类型 默认值 说明 + * @param $user_id number - QQ 号(不可以是登录号) + * @param string $no_cache bool false 是否不使用缓存(使用缓存可能更新不及时,但响应更快) + * @return mixed|string + */ + public function getStrangerInfo($user_id, $no_cache = false) + { + $url = $this->path . "get_stranger_info?user_id=$user_id&no_cache=$no_cache"; + $res = self::curl_request($url); + return $res; + } + + /** + * /get_cookies 获取 Cookies + * @return mixed|string + */ + public function getCookies() + { + $url = $this->path . "get_cookies"; + $res = self::curl_request($url); + return $res; + } + + /** + * /get_csrf_token 获取 CSRF Token + * @return mixed|string + */ + public function getCsrfToken() + { + $url = $this->path . "get_csrf_token"; + $res = self::curl_request($url); + return $res; + } + + public function curl_request($url) + { + $header[] = "Authorization:token $this->token"; + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, $url); + curl_setopt($curl, CURLOPT_HTTPHEADER, $header); + curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'); + curl_setopt($curl, CURLOPT_HEADER, 0); + curl_setopt($curl, CURLOPT_TIMEOUT, 10); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + $data = curl_exec($curl); + if (curl_errno($curl)) { + return curl_error($curl); + } + curl_close($curl); + return $data; + } + + public function curl_post($url,$data) + { + $header[] = "Authorization:token $this->token"; + $header[] = "Content-Type: application/json"; + $header[] = "Content-Length: ". strlen($data); + $ch = curl_init($url); //请求的URL地址 + curl_setopt($ch, CURLOPT_HTTPHEADER, $header); + curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); + curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//$data JSON类型字符串 + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + $data = curl_exec($ch); + return $data; + } + + public static function Test() + { + return 'success'; + } + +} + diff --git a/src/LocalSettings.php b/src/LocalSettings.php new file mode 100644 index 0000000..814241e --- /dev/null +++ b/src/LocalSettings.php @@ -0,0 +1,25 @@ + + * echo array_value($array, 'id'); + * echo array_value($array, 'city.country.name'); + * echo array_value($array, 'city.name'); + * echo array_value($array, 'city.zip', 'not set'); + * + */ +function array_value($array, $path, $default = null) +{ + if (!is_array($array)) { + return $default; + } + + $cursor = $array; + $keys = explode('.', $path); + + foreach ($keys as $key) { + if (isset($cursor[$key])) { + $cursor = $cursor[$key]; + } else { + return $default; + } + } + + return $cursor; +} + +/** + * Encode an array to JSON + * + * Also makes sure the data is encoded in UTF-8. + * + * @param array $data The array to encode in JSON. + * @param int $options The encoding options. + * @return string The JSON encoded string. + */ +function encode_json($data, $options = 0) +{ + return json_encode(encode_utf8($data), $options); +} + +/** + * Json decoder + * + * @param string $json Json string + * @return mixed Json The value encoded in json in appropriate PHP type. + */ +function decode_json($json) +{ + return json_decode($json, true); +} + +/** + * Encodes an ISO-8859-1 string or array to UTF-8. + * + * @param mixed $data String or array to convert. + * @return mixed Encoded data. + */ +function encode_utf8($data) +{ + if ($data === null || $data === '') { + return $data; + } + if (is_array($data)) { + foreach ($data as $key => $value) { + $data[$key] = encode_utf8($value); + } + return $data; + } else { + if (!mb_check_encoding($data, 'UTF-8')) { + return mb_convert_encoding($data, 'UTF-8'); + } else { + return $data; + } + } +} + +/** + * Returns a ISO-8859-1 encoded string or array. + * + * @param mixed $data String or array to convert. + * @return mixed Encoded data. + */ +function encode_iso($data) +{ + if ($data === null || $data === '') { + return $data; + } + if (is_array($data)) { + foreach ($data as $key => $value) { + $data[$key] = encode_iso($value); + } + return $data; + } else { + if (mb_check_encoding($data, 'UTF-8')) { + return mb_convert_encoding($data, 'ISO-8859-1', 'auto'); + } else { + return $data; + } + } +} + +/** + * Read a PHP file. + * + * @param string $file File + * @return mixed Data + */ +function read($file) +{ + if (!file_exists($file)) { + throw new InvalidArgumentException(sprintf('File %s not found', $file)); + } + + return require $file; +} diff --git a/src/gm/main.php b/src/gm/main.php new file mode 100644 index 0000000..2e1333d --- /dev/null +++ b/src/gm/main.php @@ -0,0 +1,7 @@ +sendGroupMsg($group, $message); +$sendBack = true; +?> \ No newline at end of file diff --git a/src/group/add.php b/src/group/add.php new file mode 100644 index 0000000..9e524ae --- /dev/null +++ b/src/group/add.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/src/group/del.php b/src/group/del.php new file mode 100644 index 0000000..9894f70 --- /dev/null +++ b/src/group/del.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/src/group/main.php b/src/group/main.php new file mode 100644 index 0000000..1ebc422 --- /dev/null +++ b/src/group/main.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/src/group/see.php b/src/group/see.php new file mode 100644 index 0000000..4a499e3 --- /dev/null +++ b/src/group/see.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/src/help/main.php b/src/help/main.php new file mode 100644 index 0000000..b1eb9cb --- /dev/null +++ b/src/help/main.php @@ -0,0 +1,12 @@ + - 掷骰子 +!ticket - 留言板系统 +!stat - 系统信息 +!version - 显示当前YeziiBot的版本信息 +";} +$sendBack = true; +?> \ No newline at end of file diff --git a/src/index.php b/src/index.php new file mode 100644 index 0000000..c84c97c --- /dev/null +++ b/src/index.php @@ -0,0 +1,67 @@ +sendPrivateMsg($me, var_export($recv, true)."\n!{$command} ".var_export($argv, true)); + +//弱智反射 +if(file_exists(__DIR__."/{$command}/main.php")) +require_once(__DIR__."/{$command}/main.php"); +else die(); + +if($sendBack){ + if(null !== $group){ + $CoolQ->sendGroupMsg($group, $message); + }else{ + $CoolQ->sendPrivateMsg($sender, $message); + } +}else if($sendPM){ + $CoolQ->sendPrivateMsg($sender, $message); +} + +//$CoolQ->sendPrivateMsg($sender, $message); +?> \ No newline at end of file diff --git a/src/repeat/main.php b/src/repeat/main.php new file mode 100644 index 0000000..41c662f --- /dev/null +++ b/src/repeat/main.php @@ -0,0 +1,8 @@ +sendGroupMsg($group, $argv[0]); +} +?> \ No newline at end of file diff --git a/src/roll/main.php b/src/roll/main.php new file mode 100644 index 0000000..f42ddf7 --- /dev/null +++ b/src/roll/main.php @@ -0,0 +1,29 @@ +=$wgMaxRoll){ + + $message = "我一下子投不了那么多骰子哦QwQ"; +}else{ + if(1==$argc)$max=$argv[0]; + + $message=rand((int)$min, (int)$max); +} + +$sendBack = true; +?> \ No newline at end of file diff --git a/src/stat/main.php b/src/stat/main.php new file mode 100644 index 0000000..92feca1 --- /dev/null +++ b/src/stat/main.php @@ -0,0 +1,159 @@ + \ No newline at end of file diff --git a/src/sudo/edit.php b/src/sudo/edit.php new file mode 100644 index 0000000..dcd956e --- /dev/null +++ b/src/sudo/edit.php @@ -0,0 +1,9 @@ + diff --git a/src/sudo/main.php b/src/sudo/main.php new file mode 100644 index 0000000..f9e6127 --- /dev/null +++ b/src/sudo/main.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/src/sudo/see.php b/src/sudo/see.php new file mode 100644 index 0000000..7ad8e54 --- /dev/null +++ b/src/sudo/see.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/src/ticket/close.php b/src/ticket/close.php new file mode 100644 index 0000000..6730218 --- /dev/null +++ b/src/ticket/close.php @@ -0,0 +1,18 @@ +sendPrivateMsg($creator, '您创建的 Ticket #'.$argv[1].' 已经关闭!'."\n".'如果问题仍然存在,请重新创建。附:Ticket文件'); +$CoolQ->sendPrivateMsg($creator, $issue, true); + +$message=$creator.' 创建的 Ticket #'.$argv[1].' 已经关闭!'; + +//unlink(__DIR__."/tickets/{$argv[1]}.txt"); +}else $message='Ticket 不存在'; + +?> \ No newline at end of file diff --git a/src/ticket/ignore.php b/src/ticket/ignore.php new file mode 100644 index 0000000..c1cf428 --- /dev/null +++ b/src/ticket/ignore.php @@ -0,0 +1,17 @@ +sendPrivateMsg($creator, '㴴 Ticket #'.$argv[1].' ԣ'); + +$message=$creator.' Ticket #'.$argv[1].' ԣ'; + +unlink(__DIR__."/tickets/{$argv[1]}.txt"); +}else $message='Ticket '; + +?> diff --git a/src/ticket/main.php b/src/ticket/main.php new file mode 100644 index 0000000..954cee5 --- /dev/null +++ b/src/ticket/main.php @@ -0,0 +1,17 @@ + \ No newline at end of file diff --git a/src/ticket/open.php b/src/ticket/open.php new file mode 100644 index 0000000..8fdb3a0 --- /dev/null +++ b/src/ticket/open.php @@ -0,0 +1,27 @@ +1&&strlen($title)<35&&strlen($desc)<$wgMaxTicketLength)$ticket_ok=true; + +if($ticket_ok){ +file_put_contents(__DIR__."/tickets/{$index}.txt", "Ticket #{$index}\nCreator: {$sender}\n{$title}\n{$desc}"); + +$message=$sender.' 创建了 ticket #'.$index; +$CoolQ->sendPrivateMsg($me, $message); + +$index++; +file_put_contents(__DIR__.'/tickets/index', $index); +}else{ +$message='ticket 不符合要求'; +} +?> \ No newline at end of file diff --git a/src/ticket/see.php b/src/ticket/see.php new file mode 100644 index 0000000..4bdf2f1 --- /dev/null +++ b/src/ticket/see.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/src/ticket/solve.php b/src/ticket/solve.php new file mode 100644 index 0000000..7b82717 --- /dev/null +++ b/src/ticket/solve.php @@ -0,0 +1,18 @@ +sendPrivateMsg($creator, ' Ticket #'.$argv[1].' Ѿ'."\n".'Ȼڣ´Ticketļ'); +$CoolQ->sendPrivateMsg($creator, $issue, true); + +$message=$creator.' Ticket #'.$argv[1].' Ѿ'; + +unlink(__DIR__."/tickets/{$argv[1]}.txt"); +}else $message='Ticket '; + +?> \ No newline at end of file diff --git a/src/ticket/tickets/1.txt b/src/ticket/tickets/1.txt new file mode 100644 index 0000000..ab602d1 --- /dev/null +++ b/src/ticket/tickets/1.txt @@ -0,0 +1,4 @@ +Ticket #1 +Creator: 2927103357 +标题 +内容 \ No newline at end of file diff --git a/src/ticket/tickets/2.txt b/src/ticket/tickets/2.txt new file mode 100644 index 0000000..980e0a6 --- /dev/null +++ b/src/ticket/tickets/2.txt @@ -0,0 +1,4 @@ +Ticket #2 +Creator: 2927103357 +啾啾 +啾啾啾 \ No newline at end of file diff --git a/src/ticket/tickets/3.txt b/src/ticket/tickets/3.txt new file mode 100644 index 0000000..49afac9 --- /dev/null +++ b/src/ticket/tickets/3.txt @@ -0,0 +1,4 @@ +Ticket #3 +Creator: 2927103357 +测试ticket +这是一段测试的文字 \ No newline at end of file diff --git a/src/ticket/tickets/4.txt b/src/ticket/tickets/4.txt new file mode 100644 index 0000000..d8ee1f6 --- /dev/null +++ b/src/ticket/tickets/4.txt @@ -0,0 +1,3 @@ +Ticket #4 +Creator: 919815238 +LovelyA72快点动啊 diff --git a/src/ticket/tickets/6.txt b/src/ticket/tickets/6.txt new file mode 100644 index 0000000..b0f3bc4 --- /dev/null +++ b/src/ticket/tickets/6.txt @@ -0,0 +1,4 @@ +Ticket #6 +Creator: 2927103357 +reopen功能 +close的丢去close/文件夹,当做临时废弃(半忽略) \ No newline at end of file diff --git a/src/ticket/tickets/index b/src/ticket/tickets/index new file mode 100644 index 0000000..c793025 --- /dev/null +++ b/src/ticket/tickets/index @@ -0,0 +1 @@ +7 \ No newline at end of file diff --git a/src/tools.php b/src/tools.php new file mode 100644 index 0000000..0474a23 --- /dev/null +++ b/src/tools.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/src/version/main.php b/src/version/main.php new file mode 100644 index 0000000..3c22b55 --- /dev/null +++ b/src/version/main.php @@ -0,0 +1,5 @@ + \ No newline at end of file