David 10 лет назад
Родитель
Сommit
f5811349fc
2 измененных файлов с 6 добавлено и 3 удалено
  1. 5 1
      db.py
  2. 1 2
      news.py

+ 5 - 1
db.py

@@ -94,6 +94,10 @@ class db():
 
     def lower_arr(self,arr):
         return [a.lower() for a in arr]
+
+    def to_regex(self,arr): #"ACH" |  "PAYMENT" | "EBAY"
+        return [ re.compile('\b'+w.lower()+'\b') for w in arr ]
+
     def get_keywords_list(self):
         kw=self.client[self.DB]["keywords"]
         return [  k["keyword"] for k in kw.find({}) ]
@@ -102,7 +106,7 @@ class db():
         kw=self.client[self.DB]["keywords"] #FIXME, split on "|" or regex
         ret = [ {"weight":k["weight"],
                 "kw": k["keyword"],
-                "pattern": self.lower_arr(k["keyword"].split("|")) } for k in  kw.find({}) ]#FIXME, categories
+                "pattern": self.to_regex(k["keyword"].split("|")) } for k in  kw.find({}) ]#FIXME, categories
         return ret
 
     def add_source(self,url,rss,selector,name):

+ 1 - 2
news.py

@@ -68,12 +68,11 @@ class News():
         lowertext=self.TEXT.lower()
         for k in kw:
             #if re.match(k["pattern"], self.TEXT): #FIXME regex vs string in string
-            matches=len( [ 1 for kwp in k["pattern"] if kwp in lowertext ] )
+            matches=len( [ 1 for kwp in k["pattern"] if kwp.search(lowertext) ] )
             if matches==len(k["pattern"]):
                 self.WEIGHT_SUM+=k["weight"]
                 self.MATCHING_KW.append(k["kw"])
                 self.MATCHES=True
-
     def get(self):
         return {
                 "url": self.URL,