Holy rewrite, batman
[scrappy.git] / modules / float.py
blob2573b5b810bd1acda41f8096087821bc320c7c8a
1 #Module for scrappy that implements floating-point functions
2 #originally thats what it was for, now it does a bunch more things
4 import sys
5 import struct
6 import binascii
8 def __init__(scrap):
9 #register commands
10 scrap.register_msg_event(float_cmd)
11 scrap.register_msg_event(bs_cmd)
13 def float_cmd(c,list,bot):
14 """"""
16 cmd = list[4].split(" ")[0]
18 if cmd == "$" and list[4].split(" ")[1]:
20 try:
21 num = float(list[4].split(" ")[1])
22 except ValueError:
23 try:
24 num = int(list[4].split(" ")[1], 16)
25 except ValueError:
26 c.privmsg(list[5],("%s: Invalid number") % list[0])
27 return
29 tmp = struct.pack("!f", num)
30 tmp1 = struct.pack("!i", num)
31 tmp2 = struct.pack("!d", num)
32 tmp3 = struct.pack("!q", num)
34 c.privmsg(list[5],("%s: 32bit float:0x%s | 2's complement int: 0x%s | 64bit float:0x%s | 2's complement long: 0x%s" % \
35 (list[0],binascii.hexlify(tmp),binascii.hexlify(tmp1),binascii.hexlify(tmp2),binascii.hexlify(tmp3))))
37 def bs_cmd(c,list,bot):
38 """"""
40 cmd = list[4].split(" ")[0]
42 if cmd == "bs" and list[4].split(" ")[1]:
44 try:
45 num = int(list[4].split(" ")[1])
46 except ValueError:
47 try:
48 num = int(list[4].split(" ")[1], 16)
49 except ValueError:
50 c.privmsg(list[5],("%s: Invalid number") % list[0])
51 return
53 tmp = struct.pack("<i", num)
55 c.privmsg(list[5],("%s: 0x%s" % (list[0],binascii.hexlify(tmp))))