chiark / gitweb /
Match a few more messages
[ypp-sc-tools.main.git] / yoweb-scrape
index c3e6d73513adc3d5516252d8bd5c06ef706a26bd..b12b5032fcb9eb7c09cfdfa867dbd34f57eb8e65 100755 (executable)
@@ -610,6 +610,10 @@ class ChatLogTracker:
                        del v[pirate]
                        del self._pl[pirate]
 
+               def disembark_me(why):
+                       self._disembark_myself()
+                       return d('disembark-me '+why)
+
                m = rm('Going aboard the (\\S.*\\S)\\.\\.\\.$')
                if m:
                        dm = ['boarding']
@@ -706,19 +710,35 @@ class ChatLogTracker:
                m = rm('(\\w+) officer chats, "(.*)"$')
                if m: return chat_metacmd('officer')
 
+               m = rm('Ye accepted the offer to job with ')
+               if m: return disembark_me('jobbing')
+
+               m = rm('Ye hop on the ferry and are whisked away ')
+               if m: return disembark_me('ferry')
+
+               m = rm('Whisking away to yer home on the magical winds')
+               if m: return disembark_me('home')
+
                m = rm('Game over\\.  Winners: ([A-Za-z, ]+)\\.$')
                if m:
                        pl = m.group(1).split(', ')
                        if not self._myself.name in pl:
-                               return d('lost boarding battle')
+                               return d('lost melee')
                        for pn in pl:
                                if ' ' in pn: continue
-                               ob_x(pn,'won boarding battle')
-                       return d('won boarding battle')
+                               ob_x(pn,'won melee')
+                       return d('won melee')
 
                m = rm('(\\w+) is eliminated\\!')
                if m: return ob1('eliminated in fray');
 
+               m = rm('(\\w+) has driven \w+ from the ship\\!')
+               if m: return ob1('boarder repelled');
+
+               m = rm('\w+ has bested (\\w+), and turns'+
+                       ' to the rest of the ship\\.')
+               if m: return ob1('boarder unrepelled');
+
                m = rm('(\\w+) has left the vessel\.')
                if m:
                        pirate = m.group(1)
@@ -961,7 +981,7 @@ def do_ship_aid(args, bu):
                s = "%s" % track.myname()
 
                vn = track.vessel()
-               if vn is None: s += " not on a vessel?!"
+               if vn is None: s += " not on a vessel"
                else: s += " on board the %s" % vn
                s += " at %s\n" % time.strftime("%Y-%m-%d %H:%M:%S")