konn-rupircd 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest +21 -0
- data/Rakefile +16 -0
- data/VERSION +1 -0
- data/changes.html +41 -0
- data/changes.ja.html +41 -0
- data/index.html +75 -0
- data/index.ja.html +72 -0
- data/info.txt +54 -0
- data/ircd.rb +26 -0
- data/lib/rupircd/channel.rb +418 -0
- data/lib/rupircd/conf.rb +26 -0
- data/lib/rupircd/message.rb +254 -0
- data/lib/rupircd/server.rb +677 -0
- data/lib/rupircd/user.rb +103 -0
- data/lib/rupircd/utils.rb +32 -0
- data/lib/rupircd.rb +12 -0
- data/mkpassword.rb +3 -0
- data/motd.txt +16 -0
- data/rupircd.gemspec +72 -0
- data/sample.conf +10 -0
- data/usage.html +112 -0
- data/usage.ja.html +112 -0
- metadata +25 -1
data/Manifest
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Changes.ja.rd
|
2
|
+
Changes.rd
|
3
|
+
Manifest
|
4
|
+
README.ja.rd
|
5
|
+
README.rd
|
6
|
+
Usage.ja.rd
|
7
|
+
Usage.rd
|
8
|
+
info.txt
|
9
|
+
bin/rupircd
|
10
|
+
bin/mkpassword
|
11
|
+
lib/rupircd/
|
12
|
+
lib/rupircd/channel.rb
|
13
|
+
lib/rupircd/conf.rb
|
14
|
+
lib/rupircd/message.rb
|
15
|
+
lib/rupircd/mykconv.rb
|
16
|
+
lib/rupircd/server.rb
|
17
|
+
lib/rupircd/user.rb
|
18
|
+
lib/rupircd/utils.rb
|
19
|
+
lib/rupircd.rb
|
20
|
+
motd.txt
|
21
|
+
sample.conf
|
data/Rakefile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
begin
|
2
|
+
require 'jeweler'
|
3
|
+
Jeweler::Tasks.new do |gemspec|
|
4
|
+
gemspec.name = "rupircd"
|
5
|
+
gemspec.summary = "rupircd - RUby Pseudo IRC Daemon"
|
6
|
+
gemspec.email = "mr_konn[at]jcom[dot]home[dot]ne[dot]jp"
|
7
|
+
gemspec.homepage = "http://github.com/konn/rupircd"
|
8
|
+
gemspec.description = "rupircd is a light IRC daemon written in 100% pure ruby."
|
9
|
+
gemspec.authors = ["konn"]
|
10
|
+
gemspec.extra_rdoc_files = ["README.ja.rd","README.rd","Usage.ja.rd","Usage.rd","Changes.ja.rd","Changes.rd"]
|
11
|
+
gemspec.files.exclude('**/.DS_Store')
|
12
|
+
gemspec.files.exclude('**/.gemified')
|
13
|
+
end
|
14
|
+
rescue LoadError
|
15
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
16
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.6.1
|
data/changes.html
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
<?xml version="1.0" ?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
6
|
+
<head>
|
7
|
+
<title>Changes.rd</title>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<h1><a name="label-0" id="label-0">ChangeLog</a></h1><!-- RDLabel: "ChangeLog" -->
|
11
|
+
<h2><a name="label-1" id="label-1">ver 0.5b1 2007-05-18T22:30:56+09:00</a></h2><!-- RDLabel: "ver 0.5b1 2007-05-18T22:30:56+09:00" -->
|
12
|
+
<ul>
|
13
|
+
<li>Fix the bug about space charactor in privmsg/notice. (Thanks>kusigahama)</li>
|
14
|
+
<li>Implement OPER
|
15
|
+
<ul>
|
16
|
+
<li>And DIE, CLOSE, REHASH, RESTART command.</li>
|
17
|
+
</ul></li>
|
18
|
+
</ul>
|
19
|
+
<h2><a name="label-2" id="label-2">ver 0.2b1 2007-04-29T19:32:40+09:00</a></h2><!-- RDLabel: "ver 0.2b1 2007-04-29T19:32:40+09:00" -->
|
20
|
+
<ul>
|
21
|
+
<li>Fix the problem occuring when many people disconnect from the server at the same time.</li>
|
22
|
+
</ul>
|
23
|
+
<h2><a name="label-3" id="label-3">ver 0.1b2 2007-04-08T22:17:29+09:00</a></h2><!-- RDLabel: "ver 0.1b2 2007-04-08T22:17:29+09:00" -->
|
24
|
+
<ul>
|
25
|
+
<li>Implement AWAY command</li>
|
26
|
+
<li>Implement channel start from "+" (channel which doesn't support mode)</li>
|
27
|
+
<li>Implement some query commands(who, whois, whowas, ison, userhost)</li>
|
28
|
+
<li>Implement KICK command</li>
|
29
|
+
<li>Change implementation of Exceptions</li>
|
30
|
+
<li>Fix implementation of channel mode</li>
|
31
|
+
<li>Fix problem that user doesn't unregister from channel when user left from channel</li>
|
32
|
+
<li>Change direction of libraries</li>
|
33
|
+
<li>Write documents</li>
|
34
|
+
</ul>
|
35
|
+
<h2><a name="label-4" id="label-4">ver 0.1b1 2007-03-29T21:48:43+09:00</a></h2><!-- RDLabel: "ver 0.1b1 2007-03-29T21:48:43+09:00" -->
|
36
|
+
<ul>
|
37
|
+
<li>Announce</li>
|
38
|
+
</ul>
|
39
|
+
|
40
|
+
</body>
|
41
|
+
</html>
|
data/changes.ja.html
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
<?xml version="1.0" ?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
6
|
+
<head>
|
7
|
+
<title>Changes.ja.rd</title>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<h1><a name="label-0" id="label-0">ChangeLog</a></h1><!-- RDLabel: "ChangeLog" -->
|
11
|
+
<h1><a name="label-1" id="label-1">ver 0.5b1 2007-05-18T22:30:56+09:00</a></h1><!-- RDLabel: "ver 0.5b1 2007-05-18T22:30:56+09:00" -->
|
12
|
+
<ul>
|
13
|
+
<li>PRIVMSG/NOTICE中の半角スペースが無くなってしまうバグを修正(Thanks>kusigahamaさん)</li>
|
14
|
+
<li>OPER実装
|
15
|
+
<ul>
|
16
|
+
<li>DIE, CLOSE, REHAH, RESTART を実装</li>
|
17
|
+
</ul></li>
|
18
|
+
</ul>
|
19
|
+
<h1><a name="label-2" id="label-2">ver 0.2b1 2007-04-29T19:32:40+09:00</a></h1><!-- RDLabel: "ver 0.2b1 2007-04-29T19:32:40+09:00" -->
|
20
|
+
<ul>
|
21
|
+
<li>同時に沢山の人が接続を切ったときに発生する問題を修正</li>
|
22
|
+
</ul>
|
23
|
+
<h2><a name="label-3" id="label-3">ver 0.1b2 2007-04-08T22:17:29+09:00</a></h2><!-- RDLabel: "ver 0.1b2 2007-04-08T22:17:29+09:00" -->
|
24
|
+
<ul>
|
25
|
+
<li>AWAY の実装</li>
|
26
|
+
<li>"+" で始まるチャンネル(モード無しチャンネル)実装</li>
|
27
|
+
<li>クエリを幾つか実装(who, whois, whowas, ison, userhost)</li>
|
28
|
+
<li>KICK コマンドを実装</li>
|
29
|
+
<li>チャンネルモードの実装を修正</li>
|
30
|
+
<li>例外の実装を変更</li>
|
31
|
+
<li>ユーザがチャンネルを去ったときにきちんと登録が抹消されない問題を修正</li>
|
32
|
+
<li>ライブラリ構成を変更</li>
|
33
|
+
<li>ドキュメントかいた</li>
|
34
|
+
</ul>
|
35
|
+
<h2><a name="label-4" id="label-4">ver 0.1b1 2007-03-29T21:48:43+09:00</a></h2><!-- RDLabel: "ver 0.1b1 2007-03-29T21:48:43+09:00" -->
|
36
|
+
<ul>
|
37
|
+
<li>Announce</li>
|
38
|
+
</ul>
|
39
|
+
|
40
|
+
</body>
|
41
|
+
</html>
|
data/index.html
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
<?xml version="1.0" ?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
6
|
+
<head>
|
7
|
+
<title>README.rd</title>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<h1><a name="label-0" id="label-0">rupircd -- Ruby Pseudo IRC Deamon</a></h1><!-- RDLabel: "rupircd ­­ Ruby Pseudo IRC Deamon" -->
|
11
|
+
<pre>ver 0.2b1 2007-04-29T19:32:40+09:00
|
12
|
+
|
13
|
+
Copyright (c) 2007 konn <banzaida_at_jcom_dot_home_dot_ne_dot_jp>
|
14
|
+
|
15
|
+
You can redistribute it and/or modify it under the same term as Ruby.</pre>
|
16
|
+
<h2><a name="label-1" id="label-1">What is this?</a></h2><!-- RDLabel: "What is this?" -->
|
17
|
+
<p>It is pseudo ircd written in Pure Ruby.
|
18
|
+
It has following special features.</p>
|
19
|
+
<ul>
|
20
|
+
<li>Using WEBrick</li>
|
21
|
+
<li>Because of written in pure ruby, you can use it wherever ruby is installed.
|
22
|
+
<ul>
|
23
|
+
<li>You can use it without compiling</li>
|
24
|
+
</ul></li>
|
25
|
+
<li>It is light because it doesn't relay.
|
26
|
+
<ul>
|
27
|
+
<li>Features for relay are not implemented.
|
28
|
+
<ul>
|
29
|
+
<li>For example, "LINK" Command, "STATS m" Command</li>
|
30
|
+
<li>Channel having prefix '&' (Local Channel)</li>
|
31
|
+
</ul></li>
|
32
|
+
</ul></li>
|
33
|
+
<li>Easy to configure!</li>
|
34
|
+
</ul>
|
35
|
+
<p>And, it can't do following things, not to say I won't mount those things.</p>
|
36
|
+
<ul>
|
37
|
+
<li>Relaying with other server
|
38
|
+
<ul>
|
39
|
+
<li>Features about relaying</li>
|
40
|
+
</ul></li>
|
41
|
+
<li>Channel mask</li>
|
42
|
+
</ul>
|
43
|
+
<p>It doesn't relay, so it's pseudo.</p>
|
44
|
+
<p>I modified and be using source "irc.rb" of Ruby Irc interfaCE "rice" as "message.rb".</p>
|
45
|
+
<p>Thanks.</p>
|
46
|
+
<h2><a name="label-2" id="label-2">Target user</a></h2><!-- RDLabel: "Target user" -->
|
47
|
+
<ul>
|
48
|
+
<li>Want to test your own bot without burdening the public server</li>
|
49
|
+
<li>Want to setup IRC server for family circle</li>
|
50
|
+
<li>Looking for light ircd</li>
|
51
|
+
<li>Can't live without ruby!</li>
|
52
|
+
<li>Fan of the developer(!?)</li>
|
53
|
+
</ul>
|
54
|
+
<h2><a name="label-3" id="label-3">USAGE</a></h2><!-- RDLabel: "USAGE" -->
|
55
|
+
<p>ruby ircd.rb sample.conf</p>
|
56
|
+
<p>If you would like to know more details, please read "USAGE.rd". (I will write it later :-P)
|
57
|
+
Well, anyway, Source must be the best Manual for this time, I think.</p>
|
58
|
+
<h2><a name="label-4" id="label-4">TODO</a></h2><!-- RDLabel: "TODO" -->
|
59
|
+
<ol>
|
60
|
+
<li>Think cooler name</li>
|
61
|
+
<li>Implement all commands (whitout about Relaying) </li>
|
62
|
+
<li>Make installer</li>
|
63
|
+
<li>Safe Channel</li>
|
64
|
+
<li>"Service" client</li>
|
65
|
+
</ol>
|
66
|
+
<h2><a name="label-5" id="label-5">Thanks for</a></h2><!-- RDLabel: "Thanks for" -->
|
67
|
+
<ul>
|
68
|
+
<li>rice (http://arika.org/ruby/rice)</li>
|
69
|
+
<li>WEBrick</li>
|
70
|
+
<li>ruby</li>
|
71
|
+
</ul>
|
72
|
+
<p>and who would read this README weitten in terrible English by Junior High School Student.</p>
|
73
|
+
|
74
|
+
</body>
|
75
|
+
</html>
|
data/index.ja.html
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
<?xml version="1.0" ?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
6
|
+
<head>
|
7
|
+
<title>README.ja.rd</title>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<h1><a name="label-0" id="label-0">rupircd -- Ruby Pseudo IRC Deamon</a></h1><!-- RDLabel: "rupircd ­­ Ruby Pseudo IRC Deamon" -->
|
11
|
+
<pre>ver 0.2b1 2007-04-29T19:32:40+09:00
|
12
|
+
|
13
|
+
Copyright (c) 2007 konn <banzaida_at_jcom_dot_home_dot_ne_dot_jp>
|
14
|
+
|
15
|
+
You can redistribute it and/or modify it under the same term as Ruby.</pre>
|
16
|
+
<h2><a name="label-1" id="label-1">これは何?</a></h2><!-- RDLabel: "これは何?" -->
|
17
|
+
<p>Pure Ruby で書かれた ircd モドキです。
|
18
|
+
こんな特徴があります。</p>
|
19
|
+
<ul>
|
20
|
+
<li>WEBrick を使ってます。</li>
|
21
|
+
<li>100% ruby なのでruby さえあれば何処でも動く
|
22
|
+
<ul>
|
23
|
+
<li>コンパイル不要!</li>
|
24
|
+
</ul></li>
|
25
|
+
<li>Relay しないので軽い!
|
26
|
+
<ul>
|
27
|
+
<li>Relay しないと意味のないコマンドは実装してません。
|
28
|
+
<ul>
|
29
|
+
<li>LINK とか STATS l とか</li>
|
30
|
+
<li>&で始まるチャンネル(ローカルチャンネル)</li>
|
31
|
+
</ul></li>
|
32
|
+
</ul></li>
|
33
|
+
<li>設定が簡単!</li>
|
34
|
+
</ul>
|
35
|
+
<p>以下のようなことが出来ません。というか実装予定がありません。</p>
|
36
|
+
<ul>
|
37
|
+
<li>Relay
|
38
|
+
<ul>
|
39
|
+
<li>それに関連したコマンド</li>
|
40
|
+
</ul></li>
|
41
|
+
<li>チャンネルマスク</li>
|
42
|
+
</ul>
|
43
|
+
<p>Relay しないのでPseudoです。</p>
|
44
|
+
<p>これを作る上で、rice の irc.rb を一部改変させて使わせて頂いてます。ありがとうございました!</p>
|
45
|
+
<h2><a name="label-2" id="label-2">こんなあなたに</a></h2><!-- RDLabel: "こんなあなたに" -->
|
46
|
+
<ul>
|
47
|
+
<li>自作ボットをテストしたいがサーバーに負荷を掛けたくない。</li>
|
48
|
+
<li>内輪でサーバを建てたい</li>
|
49
|
+
<li>軽いircdを探してる</li>
|
50
|
+
<li>ruby で書かれたものじゃないとやだ!</li>
|
51
|
+
<li>作者の個人的フアン(!?)</li>
|
52
|
+
</ul>
|
53
|
+
<h2><a name="label-3" id="label-3">使い方</a></h2><!-- RDLabel: "使い方" -->
|
54
|
+
<p>ruby ircd.rb sample.conf</p>
|
55
|
+
<p>詳しくは、 USAGE.ja.rd を 御覧下さい。</p>
|
56
|
+
<h2><a name="label-4" id="label-4">TODO</a></h2><!-- RDLabel: "TODO" -->
|
57
|
+
<ol>
|
58
|
+
<li>もっとカッコイイ名前をかんがえる</li>
|
59
|
+
<li>コマンドを全部(リンク周り以外)実装する</li>
|
60
|
+
<li>インストーラを作る</li>
|
61
|
+
<li>セーフチャンネル</li>
|
62
|
+
<li>「サービス」機能</li>
|
63
|
+
</ol>
|
64
|
+
<h2><a name="label-5" id="label-5">謝辞</a></h2><!-- RDLabel: "謝辞" -->
|
65
|
+
<ul>
|
66
|
+
<li>rice (http://arika.org/ruby/rice)</li>
|
67
|
+
<li>WEBrick</li>
|
68
|
+
<li>ruby</li>
|
69
|
+
</ul>
|
70
|
+
|
71
|
+
</body>
|
72
|
+
</html>
|
data/info.txt
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
=begin
|
2
|
+
= rupircd -- Ruby Pseudo IRC Deamon
|
3
|
+
|
4
|
+
ver 0.1b1 2007-03-29T17:47:25+09:00
|
5
|
+
|
6
|
+
Copyright (c) 2007 konn <mr_konn_at_jcom_dot_home_dot_ne_dot_jp>
|
7
|
+
|
8
|
+
You can redistribute it and/or modify it under the same term as Ruby.
|
9
|
+
|
10
|
+
|
11
|
+
== これは何?
|
12
|
+
Pure Ruby で書かれた ircd モドキです。
|
13
|
+
こんな特徴があります。
|
14
|
+
|
15
|
+
* WEBrick を使ってます。
|
16
|
+
* 100% ruby なのでruby さえあれば何処でも動く
|
17
|
+
* コンパイル不要!
|
18
|
+
* Relay しないので軽い!
|
19
|
+
* Relay しないと意味のないコマンドは実装してません。
|
20
|
+
* LINK とか STATS l とか
|
21
|
+
* &で始まるチャンネル(ローカルチャンネル)
|
22
|
+
* 設定が簡単!
|
23
|
+
|
24
|
+
|
25
|
+
以下のようなことが出来ません。というか実装予定がありません。
|
26
|
+
|
27
|
+
* Relay
|
28
|
+
* それに関連したコマンド
|
29
|
+
* チャンネルマスク
|
30
|
+
|
31
|
+
Relay しないのでPseudoです。
|
32
|
+
|
33
|
+
これを作る上で、rice を一部改変させて使わせて頂いてます。ありがとうございました!
|
34
|
+
|
35
|
+
== こんなあなたに
|
36
|
+
* 自作ボットをテストしたいがサーバーに負荷を掛けたくない。
|
37
|
+
* 内輪でサーバを建てたい
|
38
|
+
* 軽いircdを探してる
|
39
|
+
* ruby で書かれたものじゃないとやだ!
|
40
|
+
* 作者の個人的フアン(!?)
|
41
|
+
|
42
|
+
== TODO
|
43
|
+
(1) コマンドを全部(リンク周り以外)実装する
|
44
|
+
(0) サーバオペレータ
|
45
|
+
(2) セーフチャンネル
|
46
|
+
(3) 「サービス」機能
|
47
|
+
|
48
|
+
|
49
|
+
== 謝辞
|
50
|
+
* WEBrick
|
51
|
+
* rice
|
52
|
+
* ruby
|
53
|
+
|
54
|
+
=end
|
data/ircd.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
=begin
|
2
|
+
= rupircd -- Ruby Pseudo IRC Deamon
|
3
|
+
|
4
|
+
ver 0.5b1 2007-05-18T22:30:56+09:00
|
5
|
+
|
6
|
+
Copyright (c) 2007 konn <banzaida_at_jcom_dot_home_dot_ne_dot_jp>
|
7
|
+
|
8
|
+
You can redistribute it and/or modify it under the same term as Ruby.
|
9
|
+
=end
|
10
|
+
|
11
|
+
$LOAD_PATH.unshift("./lib")
|
12
|
+
require "rupircd"
|
13
|
+
|
14
|
+
if ARGV.empty?
|
15
|
+
exit
|
16
|
+
end
|
17
|
+
|
18
|
+
conf = IRCd::FileConf.new(ARGV.shift)
|
19
|
+
serv = IRCd::IRCServer.new(conf)
|
20
|
+
|
21
|
+
Signal.trap('INT') do
|
22
|
+
system("kill -9 #{$$}")
|
23
|
+
serv.stop
|
24
|
+
end
|
25
|
+
|
26
|
+
serv.start
|