[TASK] Make parsing work, single to doublequotes.
This commit is contained in:
		
							parent
							
								
									9b04262445
								
							
						
					
					
						commit
						bd825fe160
					
				
							
								
								
									
										4
									
								
								bot.py
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								bot.py
									
									
									
									
									
								
							| @ -83,8 +83,8 @@ class IrcProtocol(ManagedProtocol): | |||||||
|         self.process_data() |         self.process_data() | ||||||
| 
 | 
 | ||||||
|     def process_data(self): |     def process_data(self): | ||||||
|         while b'\r\n' in self._buffer: |         while b"\r\n" in self._buffer: | ||||||
|             line, self._buffer = self._buffer.split(b'\r\n', 1) |             line, self._buffer = self._buffer.split(b"\r\n", 1) | ||||||
|             line = self.decode(line.strip()) |             line = self.decode(line.strip()) | ||||||
|             irc_line = irc.IrcLine.from_string(line) |             irc_line = irc.IrcLine.from_string(line) | ||||||
|             print(self.encode(str(irc_line))) |             print(self.encode(str(irc_line))) | ||||||
|  | |||||||
							
								
								
									
										32
									
								
								irc.py
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								irc.py
									
									
									
									
									
								
							| @ -1,20 +1,22 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
| 
 | 
 | ||||||
| def parse(line): | def parse(line): | ||||||
|     if line[0:1] == ':': |  | ||||||
|         prefix, line = line.split(None, 1) |  | ||||||
|         prefix = prefix[1:] |  | ||||||
|     else: |  | ||||||
|     prefix = "" |     prefix = "" | ||||||
|     if ' :' in line: |     if line[0:1] == ":": | ||||||
|         tmp_str, trailing = line.split(' :', 1) |         prefix = ":" | ||||||
|  |         subject, line = line.split(None, 1) | ||||||
|  |         subject = subject[1:] | ||||||
|  |     else: | ||||||
|  |         subject = "" | ||||||
|  |     if " :" in line: | ||||||
|  |         tmp_str, trailing = line.split(" :", 1) | ||||||
|         tmp_args = tmp_str.split() |         tmp_args = tmp_str.split() | ||||||
|     else: |     else: | ||||||
|         trailing = "" |         trailing = "" | ||||||
|         tmp_args = line.split() |         tmp_args = line.split() | ||||||
|     command, *middle = tmp_args |     command, *middle = tmp_args | ||||||
|     params = middle[:] |     params = middle[:] | ||||||
|     return prefix, command, params, trailing |     return prefix, subject, command, params, trailing | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class IrcLine(object): | class IrcLine(object): | ||||||
| @ -22,6 +24,7 @@ class IrcLine(object): | |||||||
|     """ |     """ | ||||||
|     def __init__(self): |     def __init__(self): | ||||||
|         self.prefix = "" |         self.prefix = "" | ||||||
|  |         self.subject = "" | ||||||
|         self.command = "" |         self.command = "" | ||||||
|         self.params = "" |         self.params = "" | ||||||
|         self.trailing = "" |         self.trailing = "" | ||||||
| @ -32,15 +35,16 @@ class IrcLine(object): | |||||||
|         data = parse(string) |         data = parse(string) | ||||||
|         print(data) |         print(data) | ||||||
|         instance.prefix = data[0] |         instance.prefix = data[0] | ||||||
|         instance.command = data[1] |         instance.subject = data[1] | ||||||
|         instance.params = data[2] |         instance.command = data[2] | ||||||
|         instance.trailing = data[3] |         instance.params = data[3] | ||||||
|  |         instance.trailing = data[4] | ||||||
|         return instance |         return instance | ||||||
| 
 | 
 | ||||||
|     def __repr__(self): |     def __repr__(self): | ||||||
|         e = [] |         e = [] | ||||||
|         if self.prefix: |         if self.subject: | ||||||
|             e.append(self.prefix) |             e.append(self.subject) | ||||||
|         if self.command: |         if self.command: | ||||||
|             e.append(self.command) |             e.append(self.command) | ||||||
|         if self.params: |         if self.params: | ||||||
| @ -48,6 +52,8 @@ class IrcLine(object): | |||||||
|         if self.trailing: |         if self.trailing: | ||||||
|             e.append(":{}".format(self.trailing)) |             e.append(":{}".format(self.trailing)) | ||||||
|         result = " ".join(e) |         result = " ".join(e) | ||||||
|  |         if self.prefix: | ||||||
|  |             result = "".join([self.prefix, result]) | ||||||
|         return result |         return result | ||||||
| 
 | 
 | ||||||
|     @classmethod |     @classmethod | ||||||
| @ -58,7 +64,7 @@ class IrcLine(object): | |||||||
|         instance.trailing = msg |         instance.trailing = msg | ||||||
|         return instance |         return instance | ||||||
| 
 | 
 | ||||||
| if __name__ == '__main__': | if __name__ == "__main__": | ||||||
|     l = IrcLine.from_string(":JPT|NC!~AS@euirc-6f528752.pools.arcor-ip.net JOIN :#euirc") |     l = IrcLine.from_string(":JPT|NC!~AS@euirc-6f528752.pools.arcor-ip.net JOIN :#euirc") | ||||||
|     print(str(l)) |     print(str(l)) | ||||||
|     print() |     print() | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user