Запуск нескольких функций лямда в одном - PullRequest
0 голосов
/ 08 февраля 2019

Я работаю над очисткой различных новостных сайтов каждые x минут, у меня есть 3 функции, каждая из которых выполняет очистку с одного конкретного сайта, возможно ли объединить их все 3 в одну функцию?это пример кода в одной функции.У меня одна и та же функция, скажем, с разным URL для очистки, и я хочу запускать их каждые x минут, так есть ли способ, чтобы одна лямбда работала для обоих вместо того, чтобы запускать каждую по отдельности?

import json
import boto3
import uuid
import feedparser
from bs4 import BeautifulSoup
import requests

def generate_id(stri):
    return 'youm' + stri.split('/')[-1]

def translate_date(dt):
    months_egypt = ['كانون الثاني', 'شهر فبراير', 'مارس', 'أبريل', 'قد', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'شهر اكتوبر', 'شهر نوفمبر', 'ديسمبر']
    months_english = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
    days_egypt = ['الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'يوم الجمعة', 'يوم السبت', 'الأحد']
    days_english = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

    for day in days_egypt:
        if day in dt:
            dt = dt.replace(day, days_english[days_egypt.index(day)][:3])
            break
    for month in months_egypt:
        if month in dt:
            dt = dt.replace(month, months_english[months_egypt.index(month)][:3])
    dt = dt.replace('،', ',')

    return dt


def lambda_handler(event, context):
    client = boto3.resource('dynamodb')

    youm = feedparser.parse('x-site')
    entries = youm.entries
    print(entries)

    table = client.Table("news")

    for entry in entries:
        print(entry['link'])
        id = generate_id(entry['link'])
        print(id)
        record = table.get_item(Key={'_id': id})
        if 'Item' not in record:
            print(entry.link)
            r = requests.get(entry.link)
            soup = BeautifulSoup(r.content, 'html.parser')
            entry['content'] = soup.find('div', {'id': 'articleBody'}).text
            entry['author'] = soup.find('span', {'class': 'writeBy'}).text
            written_by = 'كتب -'
            item = {
                    'title': entry['title'],
                    'image': entry['links'][1]['href'],
                    'link': entry['link'],
                    'date': translate_date(entry['published']),
                    'id': entry['link'],
                    'content': entry['content'],
                    'author': entry['author'],#.replace(written_by, '').replace(written_by[::-1], ''),
                    'source': 'youm',
                    '_id': generate_id(entry['link']),
                }

            table.put_item(Item=item)
            print('and its in')
        else:
            print('item already in db', record['Item']['_id'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...