@@ -0,0 +1,1114 @@
+import requests%0Aimport logging%0Afrom datetime import datetime, timedelta%0Afrom core.observables import Url%0Afrom core.feed import Feed%0Afrom core.errors import ObservableValidationError%0Afrom core.config.config import yeti_config%0A%0Aclass Obtemoslab(Feed):%0A%0A    default_values = %7B%0A        %22frequency%22: timedelta(hours=24),%0A        %22name%22: %220btemoslab%22,%0A        %22source%22 : %22http://tracker.0btemoslab.com/tracker/Malware.txt%22,%0A        %22description%22: %22List of payload locations%22,%0A    %7D%0A%0A    def update(self):%0A        resp = requests.get(self.source, proxies=yeti_config.proxy)%0A        if resp.ok and resp.content:%0A            lines = resp.content.split(%22%5Cr%5Cn%22)%5B4:-1%5D%0A            for url in lines:%0A                self.analyze(url)%0A%0A    def analyze(self, url):%0A%0A        context = %7B%7D%0A        context%5B'date_added'%5D = datetime.now()%0A        context%5B'source'%5D = self.name%0A%0A        try:%0A            url_data = Url.get_or_create(value=url)%0A            url_data.normalize()%0A            url_data.add_context(context)%0A            url_data.add_source(%22feed%22)%0A        except ObservableValidationError as e:%0A            logging.error(e)%0A

Create obtemoslab_urls.py