回答編集履歴
6
追記
answer
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
- また、エラーの内容とは別の部分ですが、行末の "n" や "rn" に関しては、
|
6
6
|
エスケープシーケンスが消えてしまってるので "\n", "\r\n" に。
|
7
7
|
- PONGを返すところはtypoで、find ではなく send です。
|
8
|
+
- "PRIVMSG " <- スペースが必要です
|
8
9
|
|
9
10
|
修正方法の一例を挙げると。
|
10
11
|
|
5
diff修正。正誤が逆になっていた
answer
CHANGED
@@ -17,8 +17,8 @@
|
|
17
17
|
例えば、他の日本語のサーバーならiso-2022-jp等がありました。
|
18
18
|
|
19
19
|
```diff
|
20
|
-
|
20
|
+
- self.irc.find('PONG ' + text.split() [1] + 'rn')
|
21
|
-
|
21
|
+
+ self.irc.send(b'PONG ' + text.split()[1].encode("utf-8") + b'\r\n')
|
22
22
|
```
|
23
23
|
|
24
24
|
送受信は全部変更する必要があるので、メソッドにしておくとよいです。
|
4
参照元のコードに準拠 sendall -> send
answer
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
# メソッド名は、何か適当に内部で使われるもの風な名前に。
|
29
29
|
|
30
30
|
def _send_raw(self, line, encoding="utf-8"):
|
31
|
-
self.irc.
|
31
|
+
self.irc.send(line.encode(encoding) + b"\r\n")
|
32
32
|
|
33
33
|
# 呼び出し側: 例)
|
34
34
|
self._send_raw('PONG ' + text.split()[1])
|
3
コード修正
answer
CHANGED
@@ -31,7 +31,7 @@
|
|
31
31
|
self.irc.sendall(line.encode(encoding) + b"\r\n")
|
32
32
|
|
33
33
|
# 呼び出し側: 例)
|
34
|
-
self._send_raw('PONG ' + text.split()
|
34
|
+
self._send_raw('PONG ' + text.split()[1])
|
35
35
|
```
|
36
36
|
|
37
37
|
受信するデータもバイト型になっています。
|
2
マークアップでdiffを利用
answer
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
~~(freenodeは未テストなので解りません)~~ クライアントの設定確認utf-8 でした。
|
17
17
|
例えば、他の日本語のサーバーならiso-2022-jp等がありました。
|
18
18
|
|
19
|
-
```
|
19
|
+
```diff
|
20
20
|
+ self.irc.find('PONG ' + text.split() [1] + 'rn')
|
21
21
|
- self.irc.send(b'PONG ' + text.split() [1].encode("utf-8") + b'\r\n')
|
22
22
|
```
|
@@ -30,10 +30,7 @@
|
|
30
30
|
def _send_raw(self, line, encoding="utf-8"):
|
31
31
|
self.irc.sendall(line.encode(encoding) + b"\r\n")
|
32
32
|
|
33
|
-
|
34
|
-
|
35
33
|
# 呼び出し側: 例)
|
36
|
-
|
37
34
|
self._send_raw('PONG ' + text.split() [1])
|
38
35
|
```
|
39
36
|
|
@@ -41,7 +38,7 @@
|
|
41
38
|
値チェック等は文字列と同じ find が使えますが、
|
42
39
|
バイト型のデータが要求されます。
|
43
40
|
|
44
|
-
```
|
41
|
+
```diff
|
45
42
|
- if text.find('PING') != -1:
|
46
43
|
+ if text.find(b'PING') != -1:
|
47
44
|
```
|
1
文字コードの設定確認
answer
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
IRCプロトコルの規定に文字コードの規約はなかったので、
|
15
15
|
文字コードはサーバーの設定に依存します。
|
16
|
-
(freenodeは未テストなので解りません)
|
16
|
+
~~(freenodeは未テストなので解りません)~~ クライアントの設定確認utf-8 でした。
|
17
17
|
例えば、他の日本語のサーバーならiso-2022-jp等がありました。
|
18
18
|
|
19
19
|
```python
|