diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..26d33521 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/Homework.iml b/.idea/Homework.iml new file mode 100644 index 00000000..039314de --- /dev/null +++ b/.idea/Homework.iml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 00000000..105ce2da --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..d56657ad --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..4a59681a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..94a25f7f --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LianaKalpakchyan/rss_reader/README.md b/LianaKalpakchyan/rss_reader/README.md new file mode 100644 index 00000000..ffc3b122 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/README.md @@ -0,0 +1,29 @@ +[Readme for RSS reader]. +=================================================================== +One-shot command-line RSS reader. +RSS reader is a command-line utility which receive [RSS](https://wikipedia.org/wiki/RSS) URL and prints results in human-readable format. +The program allows you to read news articles directly in the console output. + + +[Common usage]: +=================================================================== + usage: rss_reader.py [-h] [--version] [--json] [--verbose] [--limit LIMIT] [--date DATE] [--to-pdf [TO_PDF ...]] [--to-html [TO_HTML ...]] [source] + + One-shot command-line RSS reader ^_^ + + positional arguments: + source RSS URL + + optional arguments: + -h, --help show this help message and exit + --version Print version info + --json Print result as JSON in stdout + --verbose, --v Outputs verbose status messages + --limit LIMIT Limit news topics if this parameter provided + --date DATE Takes a date. For example: for "--date 20191020" news from the specified day will be printed out. + --to-pdf [TO_PDF ...] + Conversion of news into a PDF format + --to-html [TO_HTML ...] + Conversion of news into an HTML format + + diff --git a/LianaKalpakchyan/rss_reader/build/lib/rss_reader/__init__.py b/LianaKalpakchyan/rss_reader/build/lib/rss_reader/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_argparser/__init__.py b/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_argparser/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_argparser/rss_argparser.py b/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_argparser/rss_argparser.py new file mode 100644 index 00000000..ff968783 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_argparser/rss_argparser.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +import argparse + + +class Argparser(): + """ + A class to get arguments from CLI + + ... + + Attributes + ---------- + version: str + Keeps the program current version + + Methods + ------- + get_args(): + Implements cli arguments processing + """ + + def __init__(self): + self.version = '0.4.0' + + def get_args(self): + """This function processes arguments received from console using argparse module. + :return: Namespace (args) + """ + parser = argparse.ArgumentParser( + description='One-shot command-line RSS reader ^_^') + parser.add_argument('source', + help='RSS URL', + nargs='?', + default=None) + parser.add_argument('--version', + action='store_true', + help='Print version info') + parser.add_argument('--json', + action='store_true', + help='Print result as JSON in stdout') + parser.add_argument('--verbose', '--v', + action='store_true', + help='Outputs verbose status messages') + parser.add_argument('--limit', + type=int, + help='Limit news topics if this parameter provided', + default=-1) + parser.add_argument('--date', + help='Takes a date. For example: for "--date 20191020" \ + news from the specified day will be printed out.', + type=int, + default=None) + parser.add_argument('--to-pdf', + help='Conversion of news into a PDF format', + nargs='*') + parser.add_argument('--to-html', + help='Conversion of news into an HTML format', + nargs='*') + args = parser.parse_args() + if args.version: + print(f'Program version: {self.version}') + if args.source is None: + exit() + + return args diff --git a/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_reader.py b/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_reader.py new file mode 100644 index 00000000..56833039 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_reader.py @@ -0,0 +1,391 @@ +#!/usr/bin/env python3 +import os.path +import sys +import time +import json +import logging +import requests +import datetime +import dateparser +from bs4 import BeautifulSoup +from rss_argparser.rss_argparser import Argparser +from rss_save_into.rss_save_into import Converter + + +class Reader: + """ + A class to implement the rss_reader logic + + ... + + Attributes + ---------- + start : float + The start time of the program is expressed in seconds since the epoch, in UTC. + Will be used to calculate the working duration of the program + args : list + Arguments list received from CLI with rss_argparser package + source : str + Provided RSS link + version : str + The current iteration version of the program + json : bool + Flag for activating json mode + verbose : bool + Flag for activation verbose mode + limit : int + Number for quantity of selected news to print or to save + date : int + If provided only news having that date or fresher will be shown + to_pdf : lst + If mentioned only --to-pdf news will be converted into pdf and saved into a default folder for pdf files. + If path is provided will be saved in that path. + to_html : lst + If mentioned only --to-html news will be converted into html and saved into a default folder for html files. + If path is provided will be saved in that path. + cashed_news : str + File name for caching news + + Methods + ------- + verbose_mode(): + Function to activate verbose mode + get_xml(): + Functions gets xml page content with requests + parse_link_page(): + Function searches by a specific news original page and finds description from it + parse_xml(): + Function parses the xml page and separates every item with its details + cashing_news(): + Functions caches all new news into json file + reading_cache(): + Function reads news from cache + json_mode(): + Function activates json mode + items_in_terminal(): + Functions prints news items in terminal (shell) + html_or_pdf(): + Function calls relevant functions to create html, pdf files or both + main(): + Analyze the received data from rss_argparser and run the corresponding functions based on them + """ + + def __init__(self): + self.start = time.time() + self.args = Argparser().get_args() + self.source = self.args.source + self.version = Argparser().version + self.json = self.args.json + self.verbose = self.args.verbose + self.limit = self.args.limit + self.date = self.args.date + self.to_pdf = self.args.to_pdf + self.to_html = self.args.to_html + self.cashed_news = 'cached_news.json' + + def verbose_mode(self): + """ + This function activates verbose mode + :returns None + """ + if self.verbose: + logging.basicConfig( + stream=sys.stdout, format='%(asctime)s - %(levelname)s - %(message)s', level=logging.DEBUG) + logging.debug(f'VERBOSE MODE ACTIVATED') + logging.debug( + f'--version: {self.version}, --json: {self.json}, --verbose: {self.verbose}, --limit: {self.limit}, source: {self.source}') + + def get_xml(self): + """ + Functions requests provided link and gets content of it + :returns None or xml page text + """ + if self.source is None: + print('Please, make sure to provide RSS URL.') + return None + logging.debug('get_xml function is activated') + attempt = 3 + while True: + try: + logging.debug(f'Waiting for response from {self.source}...') + page_response = requests.get(self.source) + if page_response.status_code == 200: + logging.debug(f'Page response status code: {page_response.status_code}') + logging.debug(f'get_xml function is completed') + return page_response.text + else: + logging.debug(f'Unfortunately, no relevant page response from {self.source}') + logging.debug(f'get_xml function is completed') + return None + except: + logging.debug('Oops, unable to connect.') + print(f'No worries, will check again in 5 seconds.') + print(f'If there are no changes it will be checked {attempt} more {"time" if attempt == 1 else "times"}') + time.sleep(5) + attempt -= 1 + if attempt < 1: + print(f'{self.source} is can\'t be connected. Check the url address or internet connection.') + logging.debug('Program has stopped to working: Connection Error') + return None + + def parse_link_page(self, description_link): + """ + Function searches by a specific news original page and finds description from it + :param description_link + :returns description if found + """ + logging.debug('parse_link_page function is activated') + page_html = self.get_xml() + if page_html is None: + return 'No description' + logging.debug(f'Activating BeautifulSoup for: {description_link}') + soup = BeautifulSoup(page_html, 'lxml') + all_p = soup.find_all('p') + description = '' + for p in all_p[:3]: + if p.text.split() != '\n': + description += p.text + logging.debug('parse_link_page is completed') + return description + + def parse_xml(self, xml_text): + """ + Function parses the xml page and separates every item with its details, exits if it is invalid RSS page + :param xml_text + :returns page_title, all_items + """ + logging.debug('get_xml function is activated') + logging.debug('Activating BeautifulSoup') + soup = BeautifulSoup(xml_text, 'xml') + if not soup.find('channel'): + print('Invalid RSS page') + exit() + else: + try: + logging.debug('Looking for page "title" tag') + page_title = soup.find('title').text + except: + logging.debug('"title" tag is unavailable') + page_title = 'No page title' + all_items = [] + logging.debug('Collecting and analyzing items') + xml_items = soup.find_all('item') + if self.limit < 0: + self.limit = len(xml_items) + for item in xml_items[:self.limit]: + logging.debug('Generating each item details') + xml_item = {"title": item.find("title").text.lstrip(), "link": item.find("link").text, + "pubDate": item.find("pubDate").string} + try: + try: + xml_item["image"] = item.find('enclosure')["url"] + except: + xml_item["image"] = item.find('media:content')["url"] + except: + xml_item["image"] = 'No image found' + + try: + xml_item["description"] = item.find("description").text + except: + logging.debug('Evoking parse_link_page function') + description = self.parse_link_page(xml_item["link"]) + if description is not None: + xml_item["description"] = description + else: + xml_item["description"] = "No description" + + logging.debug(f'Saving {xml_item} to "all_items" dict') + all_items.append(xml_item) + + logging.debug('parse_xml function is completed') + return page_title, all_items + + def cashing_news(self, page_title, page_items): + """ + Function receives page_title, page_items and caches them in cached_news.txt file + :params page_title, page_items + :returns None + """ + logging.debug('cashing_news function is activated') + if not self.source.endswith('/'): + self.source += '/' + + json_content = '' + if os.path.exists(self.cashed_news): + logging.debug(f'Generating "{self.cashed_news}" file for news caching') + with open(f'{self.cashed_news}', 'r', encoding='utf-8') as json_file: + json_content = json.loads(json_file.read()) + + with open(self.cashed_news, 'w', encoding='utf-8') as file: + cached_items = [] if json_content == '' else json_content + news_dict = dict() + news_dict["caching_date"] = str(datetime.datetime.now()).replace('-', '/') + news_dict["news_feed"] = page_title + news_dict["news_items"] = [] + for item in page_items: + unique_news = {} + item_pub_date = dateparser.parse(item['pubDate']) + item_normal_date = item_pub_date.strftime('%Y%m%d') + if str(item) not in str(json_content): + logging.debug(f'New item found! Adding it to "{self.cashed_news}"') + unique_news["date"] = item_normal_date + unique_news["link"] = self.source + unique_news["item_details"] = item + news_dict["news_items"].append(unique_news) + else: + logging.debug(f'Item exists in "{self.cashed_news}". No need to add') + + cached_items.append(news_dict) + json.dump(cached_items, file, ensure_ascii=False, indent=4) + + def reading_cache(self): + """ + Function reads news for the specified date or/and resource from cached_news.txt file + :returns list with items (if there is a need to convert into html or pdf) + """ + logging.debug('"reading_cache" function is activated') + no_data = True + if self.source is not None and not self.source.endswith('/'): + self.source += '/' + try: + with open(f'{self.cashed_news}', 'r', encoding='utf-8') as file: + logging.debug(f'Open file "{self.cashed_news}". Params: {self.date}, {self.source}, {self.limit}') + for_news = f'For source: {self.source}' if self.source else '' + print('Reading cache file...') + print(for_news) + json_content = json.loads(file.read()) + limit = 0 + i = 0 + items_to_convert = [] + for fetched_news in json_content: + for sep_news in fetched_news['news_items']: + source = True if self.source is None else sep_news['link'] == self.source + if int(sep_news['date']) >= int(self.date) and source: + item = sep_news['item_details'] + items_to_convert.append(item) + print('*'*100) + logging.debug(f'Printing #{i + 1} element:') + print(f'Number {i + 1}') + print(f'\tTitle: {item["title"]}') + print(f'\tDate: {item["pubDate"]}') + print(f'\tLink: {item["link"]}') + print(f'\tDescription: {item["description"]}') + print(f'\tImage: {item["image"]}') + logging.debug(f'End Printing number {i + 1} element:') + print('*'*100) + limit += 1 + i += 1 + no_data = False + if limit == self.limit: + break + if no_data: + logging.debug(f'Nothing found found for date: {self.date}') + print(f'Error! Nothing found for date: {self.date}') + return items_to_convert + except FileNotFoundError as e: + logging.debug(f'{e} nothing is cached yet.') + print(f'Use rss-reader without --date argument at first then with --date, so there will ba cached news.') + + @staticmethod + def json_mode(items, title=''): + """ + This functions prints news in json format + """ + logging.debug('"json_monde" function is activated') + print(title, '\n', json.dumps(items, indent=4, ensure_ascii=False, sort_keys=False)) + + @staticmethod + def items_in_terminal(title, items): + """ + This function receives title for xml page its items and print in terminal (shell) + :params title, items + :returns None + """ + logging.debug('"items_in_terminal" function is activated') + print(f'\nFeed: {title}\n') + for i, item in enumerate(items): + print('*' * 100) + logging.debug(f'Printing #{i + 1} element:') + print(f'Number {i + 1}') + print(f'\tTitle: {item["title"]}') + print(f'\tDate: {item["pubDate"]}') + print(f'\tLink: {item["link"]}') + print(f'\tDescription: {item["description"]}') + print(f'\tImage: {item["image"]}') + logging.debug(f'End Printing number {i + 1} element:') + print('*' * 100) + logging.debug('"items_in_terminal" function is completed') + + def html_or_pdf(self, content): + """ + This function forwards completed html template to html creating function, to pdf creating function or to both + :param content + :returns None + """ + logging.debug(f'to_html = {self.to_html} , to_pdf = {self.to_pdf}') + converter = Converter() + converter.make_html_template(content) + if self.to_html is not None: + logging.debug(f'Converting to_html = {self.to_html}') + path_to_save = self.to_html[0] if self.to_html else 'html_files' + converter.convert_to_html(path_to_save) + if self.to_pdf is not None: + logging.debug(f'Converting to_pdf = {self.to_pdf}') + path_to_save = self.to_pdf[0] if self.to_pdf else 'pdf_files' + converter.convert_to_pdf(path_to_save) + + def main(self): + """ + This method is for analyzing arguments from rss_argparser. + Evokes the corresponding functions based on arguments' requirements. + """ + self.verbose_mode() + logging.debug('Evoking get_xml function') + xml_text = self.get_xml() if self.source else None + + if xml_text is not None and self.date is None: + logging.debug('Evoking parse_xml function') + title, items = self.parse_xml(xml_text) + if not items: + logging.debug('No item found') + print(f"{self.source} doesn't have any RSS items, or --limit is set up as 0") + elif items: + logging.debug(f'Start caching to "{self.cashed_news}"') + self.cashing_news(title, items) + + if self.to_html is not None or self.to_pdf is not None: + self.html_or_pdf(items) + + if self.json: + logging.debug('Activating printing items in JSON format') + self.json_mode(items, title) + else: + logging.debug('Activating printing items in terminal') + self.items_in_terminal(title, items) + + elif self.date is not None: + cached_news_dated = self.reading_cache() + if self.to_html is not None or self.to_pdf is not None: + self.html_or_pdf(cached_news_dated) + + elif self.json: + self.json_mode(cached_news_dated) + + else: + self.reading_cache() + + elif self.date is None: + logging.debug(f'{self.source} is empty.') + print(f'Invalid RSS link: {self.source}, please, provide valid RSS link.') + print(f'Thank you for using our RSS reader. Program is done time spent: {time.time() - self.start}s.') + + +def main(): + Reader().main() + + +if __name__ == '__main__': + main() + + + diff --git a/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_save_into/__init__.py b/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_save_into/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_save_into/rss_save_into.py b/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_save_into/rss_save_into.py new file mode 100644 index 00000000..f2b35767 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/build/lib/rss_reader/rss_save_into/rss_save_into.py @@ -0,0 +1,150 @@ +#!/usr/bin/env python3 +from xhtml2pdf import pisa +import logging +import datetime +import os + + +class Converter: + """ + A class to convert news into html, pdf formats + + ... + + Attributes + ---------- + template: str + Keeps html template + + Methods + ------- + make_html_template(): + Receives news as items and creates a html template based on them + + create_path(): + Receives file extension and file path. Currently it can only save html and pdf files + """ + + def __init__(self): + self.template = '' + + def make_html_template(self, items): + """ + This function receives news as items from news feed creates a html template and styles it. + :param items + :returns ready template + """ + logging.debug('"make_html_template" function is activated') + main_html = '' + style = """ + + +""" + for item in items: + open_div = '
' + title = f'

{item["title"]}

' + link = f'{item["link"]}' + pubdate = f'

{item["pubDate"]}

' + description = f'

{item["description"]}

' + image = item['image'] + if image == 'No image found': + image = f'

"NO IMAGE"

' + else: + image = f'

' + close_div = '
' + + pre_html = f""" + {open_div} + {title} + {link} + {pubdate} + {description} + {image} + {close_div}""" + main_html += pre_html + self.template = f'\n\n{style}\n\n' + main_html + '\n\n' + return self.template + + @staticmethod + def create_path(file_path, extension): + """ + This function receives file extension and file path. It can save html and pdf files in provided path. + There are default folder html_files for html and pdf_files for pdf. These folder are saved in rss_folder. + If optional --path argument receives path file will be saved there. + :params file_path, extension + :returns path_to_save, final_path + """ + logging.debug('"create_path" function is activated') + default_file_name = str(datetime.datetime.now()).replace(':', '_') + path_to_save = os.path.join(file_path, default_file_name + extension) + if not os.path.exists(file_path): + os.makedirs(file_path) + + final_path = os.path.abspath(path_to_save) + + return path_to_save, final_path + + def convert_to_html(self, file_path): + """ + This function generates an html real file and prints where it is saved + :param file_path + :returns None + """ + logging.debug('"convert_to_html" function is activated') + path_to_save, final_path = self.create_path(file_path, '.html') + + with open(path_to_save, 'w+', encoding='utf-8') as file: + file.write(self.template) + + print(f'Address for the html file: {final_path}') + + def convert_to_pdf(self, file_path): + """ + This function generates an pdf real file and prints where it is saved + :param file_path + :returns None + """ + logging.debug('"convert_to_pdf" function is activated') + path_to_save, final_path = self.create_path(file_path, '.pdf') + + with open(path_to_save, "w+b") as pdf_file: + pisa.CreatePDF(self.template, dest=pdf_file, encoding='UTF-8') + + print(f'Address for the pdf file: {final_path}') diff --git a/LianaKalpakchyan/rss_reader/build/lib/rss_reader/test_rss_reader.py b/LianaKalpakchyan/rss_reader/build/lib/rss_reader/test_rss_reader.py new file mode 100644 index 00000000..cff43474 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/build/lib/rss_reader/test_rss_reader.py @@ -0,0 +1,1166 @@ +import unittest +from rss_reader import Reader + +reader = Reader() +xml_content = """ + + +NYT > Top Stories +https://www.nytimes.com + + +en-us +Copyright 2022 The New York Times Company +Thu, 30 Jun 2022 08:06:15 +0000 +Thu, 30 Jun 2022 06:34:56 +0000 + +NYT > Top Stories +https://static01.nyt.com/images/misc/NYT_logo_rss_250x40.png +https://www.nytimes.com + + +In States Banning Abortion, a Growing Rift Over Enforcement +https://www.nytimes.com/2022/06/29/us/abortion-enforcement-prosecutors.html +https://www.nytimes.com/2022/06/29/us/abortion-enforcement-prosecutors.html + +A reluctance by some liberal district attorneys to bring criminal charges against abortion providers is already complicating the legal landscape in some states. +J. David Goodman and Jack Healy +Wed, 29 Jun 2022 21:41:55 +0000 +Abortion +Law and Legislation +District Attorneys +Texas + +Callaghan O'Hare/Reuters +Abortion rights protesters outside a courthouse in Houston. Some Democratic prosecutors are uneasy about declaring their districts safe havens for abortions, worried doing so could be used as grounds for their own removal by Republican leaders. + + +First Amendment Confrontation May Loom in Post-Roe Fight +https://www.nytimes.com/2022/06/29/business/media/first-amendment-roe-abortion-rights.html +https://www.nytimes.com/2022/06/29/business/media/first-amendment-roe-abortion-rights.html + +Without a federal right to abortion, questions about how states can regulate speech about it suddenly become much murkier. +Jeremy W. Peters +Wed, 29 Jun 2022 20:40:40 +0000 +Women and Girls +Law and Legislation +Dobbs v Jackson Women's Health Organization (Supreme Court Decision) +Freedom of Speech and Expression +Abortion + +Shuran Huang for The New York Times +A demonstrator outside the Supreme Court on Sunday. + + +For Many Women, Roe Was About More Than Abortion. It Was About Freedom. +https://www.nytimes.com/2022/06/29/us/women-abortion-roe-wade.html +https://www.nytimes.com/2022/06/29/us/women-abortion-roe-wade.html + +After the reversal of Roe v. Wade, some women are reconsidering their plans, including where they live, and wondering how best to channel their anger. +Julie Bosman +Wed, 29 Jun 2022 07:00:13 +0000 +Abortion +Dobbs v Jackson Women's Health Organization (Supreme Court Decision) +Roe v Wade (Supreme Court Decision) +Women and Girls +Women's Rights +States (US) +Supreme Court (US) +Decisions and Verdicts +United States + +Nina Robinson for The New York Times +Yolanda Williams plans to live in rural Georgia with her daughter. She has considered whether they should live in a state where abortion could soon be severely restricted, but is unsure which corner of the country could be better. + + +How Zeldin’s Anti-Abortion Stance May Affect the N.Y. Governor’s Race +https://www.nytimes.com/2022/06/29/nyregion/abortion-lee-zeldin-governor.html +https://www.nytimes.com/2022/06/29/nyregion/abortion-lee-zeldin-governor.html + +Representative Lee Zeldin, the Republican candidate for governor, said the decision to overturn Roe v. Wade was a victory for family, life and the Constitution. +Nicholas Fandos +Wed, 29 Jun 2022 21:21:24 +0000 +Abortion +Dobbs v Jackson Women's Health Organization (Supreme Court Decision) +Politics and Government +Zeldin, Lee M +Hochul, Kathleen C +Elections, Governors +New York State + +Andrew Seng for The New York Times, Desiree Rios/The New York Times +Gov. Kathy Hochul, right, is portraying her opponent, Lee Zeldin, as a Republican with right-wing views such as opposing abortion. + + +Jan. 6 Committee Subpoenas Pat Cipollone, Trump’s White House Counsel +https://www.nytimes.com/2022/06/29/us/politics/pat-cipollone-subpoena-jan-6.html +https://www.nytimes.com/2022/06/29/us/politics/pat-cipollone-subpoena-jan-6.html + +Mr. Cipollone, who repeatedly fought extreme plans to overturn the election, had resisted publicly testifying to the panel. +Luke Broadwater and Maggie Haberman +Thu, 30 Jun 2022 02:56:58 +0000 +United States Politics and Government +Presidential Election of 2020 +Storming of the US Capitol (Jan, 2021) +House Select Committee to Investigate the January 6th Attack +Cipollone, Pat A +Trump, Donald J + +Erin Schaff/The New York Times +The House committee investigating the Jan. 6 attack said it needed to hear from Pat A. Cipollone “on the record, as other former White House counsels have done in other congressional investigations.” + + +Hutchinson Testimony Exposes Tensions Between Parallel Jan. 6 Inquiries +https://www.nytimes.com/2022/06/29/us/politics/jan-6-committee-justice-department-trump.html +https://www.nytimes.com/2022/06/29/us/politics/jan-6-committee-justice-department-trump.html + +That the House panel did not provide the Justice Department with transcripts of Cassidy Hutchinson’s interviews speaks to the panel’s reluctance to turn over evidence. +Glenn Thrush, Luke Broadwater and Michael S. Schmidt +Thu, 30 Jun 2022 00:14:33 +0000 +Storming of the US Capitol (Jan, 2021) +United States Politics and Government +Democratic Party +House of Representatives +House Select Committee to Investigate the January 6th Attack +Justice Department +Republican Party + +Doug Mills/The New York Times +Cassidy Hutchinson’s testimony sent shock waves through Washington, including the Justice Department, on Tuesday. + + +A More Muscular NATO Emerges as West Confronts Russia and China +https://www.nytimes.com/2022/06/29/world/europe/nato-expansion-ukraine-war.html +https://www.nytimes.com/2022/06/29/world/europe/nato-expansion-ukraine-war.html + +It is a fundamental shift for a military alliance born in the Cold War and scrambling to respond to a newly reshaped world. +Steven Erlanger and Michael D. Shear +Thu, 30 Jun 2022 03:20:40 +0000 +North Atlantic Treaty Organization +Russia +China +Russian Invasion of Ukraine (2022) +Biden, Joseph R Jr +Putin, Vladimir V +Prisoners of War +United States International Relations +International Relations + +Kenny Holston for The New York Times +President Biden with the NATO secretary-general, Jens Stoltenberg, left, and Prime Minister Pedro Sánchez of Spain at the NATO summit in Madrid on Wednesday. + + +Patient and Confident, Putin Shifts Out of Wartime Crisis Mode +https://www.nytimes.com/2022/06/30/world/europe/putin-russia-nato-ukraine.html +https://www.nytimes.com/2022/06/30/world/europe/putin-russia-nato-ukraine.html + +Cloistered and spouting grievances at the start of the war on Ukraine, the Russian leader now appears publicly, projecting the aura of a calm, paternalistic leader shielding his people from the dangers of the world. +Anton Troianovski +Thu, 30 Jun 2022 04:01:09 +0000 +Russian Invasion of Ukraine (2022) +Politics and Government +United States International Relations +Embargoes and Sanctions +European Union +North Atlantic Treaty Organization +Peter the Great (1672-1725) +Putin, Vladimir V +Caspian Sea +Russia +Ukraine + +Getty Images +President Vladimir Putin of Russia arriving in Ashgabat, the capital of Turkmenistan, on Wednesday to attend the Caspian Summit. + + +McKinsey Guided Companies at the Center of the Opioid Crisis +https://www.nytimes.com/2022/06/29/business/mckinsey-opioid-crisis-opana.html +https://www.nytimes.com/2022/06/29/business/mckinsey-opioid-crisis-opana.html + +The consulting firm offered clients “in-depth experience in narcotics,” from poppy fields to pills more powerful than Purdue’s OxyContin. +Chris Hamby and Michael Forsythe +Wed, 29 Jun 2022 23:24:22 +0000 +Consultants +Opioids and Opiates +Pain-Relieving Drugs +Drugs (Pharmaceuticals) +Drug Abuse and Traffic +OxyContin (Drug) +Poppies +Acquired Immune Deficiency Syndrome +Centers for Disease Control and Prevention +Drug Enforcement Administration +Food and Drug Administration +Johnson & Johnson +McKinsey & Co +Purdue Pharma +Appalachian Region +United States +Endo +Opana + +Mark Weaver + + +Truck Carrying Dead Migrants Passed Through U.S. Checkpoint +https://www.nytimes.com/2022/06/29/us/texas-migrants-deaths-truck.html +https://www.nytimes.com/2022/06/29/us/texas-migrants-deaths-truck.html + +Border Patrol officials say truck traffic is too voluminous to check every vehicle at the dozens of immigration checkpoints on roadways near the border. +James Dobbins, J. David Goodman and Miriam Jordan +Thu, 30 Jun 2022 03:24:56 +0000 +Illegal Immigration +Immigration and Emigration +Search and Seizure +Trucks and Trucking +Border Patrol (US) +Abbott, Gregory W (1957- ) +Texas + +Lisa Krantz for The New York Times +Officials said that at least 53 people died from extreme heat inside a tractor-trailer that was abandoned in San Antonio, including migrants from Mexico, Honduras, Guatemala and El Salvador. + + +At Wimbledon, Maxime Cressy’s Throwback Style Helps Him Charge Forward +https://www.nytimes.com/2022/06/29/sports/tennis/wimbledon-cressy.html +https://www.nytimes.com/2022/06/29/sports/tennis/wimbledon-cressy.html + +We’re well past the glory days of the serve-and-volley style that took John McEnroe, Martina Navratilova and Pete Sampras to the Hall of Fame. Maxime Cressy is on a one-man revival mission. +Matthew Futterman +Wed, 29 Jun 2022 20:50:23 +0000 +Wimbledon Tennis Tournament +Cressy, Maxime + +Sebastien Bozon/Agence France-Presse — Getty Images +For Maxime Cressy, playing at the net is a central part of his tennis strategy. + + +This Is What a Post-Roe Abortion Looks Like +https://www.nytimes.com/2022/06/29/opinion/abortion-pill-roe-wade.html +https://www.nytimes.com/2022/06/29/opinion/abortion-pill-roe-wade.html + +Self-managed abortion is not a substitute for having full reproductive rights. But it’s one of the best tools we have right now. +Ora DeKornfeld, Emily Holzknecht and Jonah M. Kessel +Wed, 29 Jun 2022 09:00:12 +0000 +Abortion +Law and Legislation +Texas +Roe v Wade (Supreme Court Decision) +Mifeprex (RU-486) +your-feed-opinionvideo + + +Women Will Save Us +https://www.nytimes.com/2022/06/29/opinion/women-midterm-elections.html +https://www.nytimes.com/2022/06/29/opinion/women-midterm-elections.html + +In the face of recent threats to the country, women have stepped up more than men. +Charles M. Blow +Thu, 30 Jun 2022 00:55:06 +0000 +Project Democracy +Democratic Party +Women and Girls +Storming of the US Capitol (Jan, 2021) +Dobbs v Jackson Women's Health Organization (Supreme Court Decision) +United States Politics and Government +Supreme Court (US) +Midterm Elections (2022) + +Kendrick Brinson for The New York Times + + +Cassidy Hutchinson Changes Everything +https://www.nytimes.com/2022/06/29/opinion/cassidy-hutchinson-january-6-committee.html +https://www.nytimes.com/2022/06/29/opinion/cassidy-hutchinson-january-6-committee.html + +Her testimony delivered shocking and consequential revelations, but they have hardly been the only ones. +Norman Eisen +Thu, 30 Jun 2022 00:32:34 +0000 +Storming of the US Capitol (Jan, 2021) +Fourteenth Amendment (US Constitution) +Watergate Affair +House of Representatives +House Select Committee to Investigate the January 6th Attack +Secret Service +Cipollone, Pat A +Meadows, Mark R (1959- ) +Pence, Mike +Trump, Donald J +United States +Georgia + +Doug Mills/The New York Times + + +The Supreme Court Takes Us Back … Way Back +https://www.nytimes.com/2022/06/29/opinion/roe-dobbs-abortion-supreme-court.html +https://www.nytimes.com/2022/06/29/opinion/roe-dobbs-abortion-supreme-court.html + +Think about what the world was really like before Roe. +Gail Collins +Thu, 30 Jun 2022 00:13:54 +0000 +Dobbs v Jackson Women's Health Organization (Supreme Court Decision) +Women and Girls +Birth Control and Family Planning +Abortion +Pregnancy and Childbirth +Supreme Court (US) +Stanton, Elizabeth Cady +Thomas, Clarence +Anthony, Susan B +Vaughn, Hester +Finkbine, Sherri + +Mark Peterson/Redux for The New York Times + + +‘This Really Changes Things’: Three Opinion Writers on Cassidy Hutchinson’s Jan. 6 Testimony +https://www.nytimes.com/2022/06/29/opinion/jan-6-hearings-cassidy-hutchinson.html +https://www.nytimes.com/2022/06/29/opinion/jan-6-hearings-cassidy-hutchinson.html + +Bret Stephens and Michelle Cottle answer the question: Should Trump be indicted? +‘The Argument’ +Wed, 29 Jun 2022 19:16:40 +0000 +audio-neutral-informative +Storming of the US Capitol (Jan, 2021) +United States Politics and Government +House Select Committee to Investigate the January 6th Attack +Hutchinson, Cassidy +Trump, Donald J +Meadows, Mark R (1959- ) +Stephens, Bret (1973- ) +Cottle, Michelle +Republican Party + +Brandon Bell/Getty Images + + +America’s Death Penalty Sentences Are Slowly Grinding to a Halt +https://www.nytimes.com/2022/06/29/opinion/death-penalty-executions.html +https://www.nytimes.com/2022/06/29/opinion/death-penalty-executions.html + +The numbers of executions and death sentences are falling. +Maurice Chammah +Wed, 29 Jun 2022 09:00:23 +0000 +Capital Punishment +Suits and Litigation (Civil) +State Legislatures +Polls and Public Opinion +Sentences (Criminal) +Law and Legislation +Minorities +Civil Rights and Liberties +False Arrests, Convictions and Imprisonments +NAACP Legal Defense Fund +Supreme Court (US) +United States + +George Rinhart/Corbis, via Getty Images + + +Democrats Are Having a Purity-Test Problem at Exactly the Wrong Time +https://www.nytimes.com/2022/06/29/opinion/progressive-nonprofits-philanthropy.html +https://www.nytimes.com/2022/06/29/opinion/progressive-nonprofits-philanthropy.html + +“It has become too easy for people to conflate disagreements about issues with matters of identity,” one nonprofit official says. +Thomas B. Edsall +Thu, 30 Jun 2022 00:30:56 +0000 +Race and Ethnicity +Black Lives Matter Movement +George Floyd Protests (2020) +Philanthropy +Minorities +Whites +Appointments and Executive Changes +Nonprofit Organizations +Democratic Party + +Paul LInse/Getty Images + + +Is the Supreme Court Facing a Legitimacy Crisis? +https://www.nytimes.com/2022/06/29/opinion/supreme-court-legitimacy-crisis.html +https://www.nytimes.com/2022/06/29/opinion/supreme-court-legitimacy-crisis.html + +Warnings of the court’s declining credibility are hardly new, but after Roe’s fall, they’ve intensified and moved well beyond the bench. +Spencer Bokat-Lindell +Wed, 29 Jun 2022 22:00:04 +0000 +debatable +Abortion +Roe v Wade (Supreme Court Decision) +Supreme Court (US) +Thomas, Clarence +Bork, Robert H +Same-Sex Marriage, Civil Unions and Domestic Partnerships +Sotomayor, Sonia +Alito, Samuel A Jr +Kagan, Elena +Breyer, Stephen G +Rehnquist, William H + +Illustration by The New York Times; photographs by Chip Somodevilla, Tasos Katopodis, and Samuel Corum, via Getty Images + + +Modern Love Podcast: Left to Be Found +https://www.nytimes.com/2022/06/29/podcasts/modern-love-adoption-stories.html +https://www.nytimes.com/2022/06/29/podcasts/modern-love-adoption-stories.html + +Two women share their adoption stories — one a daughter, and the other a mother. +Wed, 29 Jun 2022 20:00:08 +0000 +Women and Girls +Adoptions +Hong Kong +Love (Emotion) +Babies and Infants + +Brian Rea + + +7 Tips for House Plant Care +https://www.nytimes.com/2022/06/23/well/live/plant-care-tips.html +https://www.nytimes.com/2022/06/23/well/live/plant-care-tips.html + +If you are known to turn a lush house plant into a rotting carcass, here are a few expert tips for making greenery thrive. +Melinda Wenner Moyer +Mon, 27 Jun 2022 20:48:08 +0000 +Content Type: Service +Weeds +Gardens and Gardening +Flowers and Plants +Summer (Season) + +Guillem Casasus + + +Sensing the World Anew Through Other Species +https://www.nytimes.com/2022/06/24/books/review/podcast-ed-yong-immense-world-terry-alford-houses-of-their-dead.html +https://www.nytimes.com/2022/06/24/books/review/podcast-ed-yong-immense-world-terry-alford-houses-of-their-dead.html + +Ed Yong talks about “An Immense World,” and Terry Alford discusses “In the Houses of Their Dead.” +Sat, 25 Jun 2022 01:14:36 +0000 +Books and Literature +An Immense World: How Animal Senses Reveal the Hidden Realms Around Us (Book) +Yong, Ed (1981- ) +Alford, Terry +In the Houses of Their Dead: The Lincolns, the Booths, and the Spirits (Book) +Animal Cognition +Occult Sciences +Lincoln, Abraham +Booth, John Wilkes + + + +Our Data Is a Curse, With or Without Roe +https://www.nytimes.com/2022/06/29/technology/abortion-data-privacy.html +https://www.nytimes.com/2022/06/29/technology/abortion-data-privacy.html + +There is so much digital information about us out there that we can’t possibly control it all. +Shira Ovide +Wed, 29 Jun 2022 17:31:36 +0000 +internal-sub-only-nl +Data-Mining and Database Marketing +Law and Legislation +Abortion +Privacy + + +Woman Is Fatally Shot While Pushing Baby in Stroller on Upper East Side +https://www.nytimes.com/2022/06/29/nyregion/upper-east-side-woman-shot-nyc.html +https://www.nytimes.com/2022/06/29/nyregion/upper-east-side-woman-shot-nyc.html + +The shooting occurred near the intersection of Lexington Avenue and 95th Street, the police said. The 3-month-old child was unhurt. +Ed Shanahan +Thu, 30 Jun 2022 05:22:31 +0000 + +Dakota Santiago for The New York Times +Investigators at the site of the fatal shooting of a 20-year-old woman on the Upper East Side. + + +Liz Cheney Calls Trump ‘a Domestic Threat That We Have Never Faced Before’ +https://www.nytimes.com/2022/06/29/us/politics/liz-cheney-speech-trump.html +https://www.nytimes.com/2022/06/29/us/politics/liz-cheney-speech-trump.html + +In a forceful speech, the congresswoman also denounced Republican leaders who had “made themselves willing hostages to this dangerous and irrational man.” +Maggie Haberman +Thu, 30 Jun 2022 03:59:44 +0000 +Cheney, Liz +Trump, Donald J +House Select Committee to Investigate the January 6th Attack +Wyoming +Elections, House of Representatives +Republican Party +Conservatism (US Politics) + +Kyle Grillot for The New York Times +Representative Liz Cheney's address at the Ronald Reagan Presidential Library was met with a standing ovation. She is facing a tough Republican primary battle in Wyoming. + + +R. Kelly, R&B Star Who Long Evaded Justice, Is Sentenced to 30 Years +https://www.nytimes.com/2022/06/29/nyregion/r-kelly-racketeering-sex-abuse.html +https://www.nytimes.com/2022/06/29/nyregion/r-kelly-racketeering-sex-abuse.html + +The prison term marks the culmination of Mr. Kelly’s stunning downfall. In court, the women he victimized gave wrenching accounts. “I don’t know if I’ll ever be whole,” one said. +Troy Closson +Wed, 29 Jun 2022 22:40:24 +0000 +Kelly, R +Sex Crimes +Child Abuse and Neglect +Racketeering and Racketeers +Human Trafficking + +Matt Marton/Associated Press +The sentencing in Brooklyn marks the culmination of a stunning downfall for R. Kelly, from a superstar hitmaker to a shunned artist whose legacy has become inextricable from his abuses. + + +A Young Black Man is Paralyzed and New Haven Officers are Investigated +https://www.nytimes.com/2022/06/29/nyregion/randy-cox-paralyzed-new-haven-police.html +https://www.nytimes.com/2022/06/29/nyregion/randy-cox-paralyzed-new-haven-police.html + +Randy Cox, 36, was being transported in a police van when it came to a sudden stop on June 19. He is now in the hospital, barely able to move. +Ali Watkins +Thu, 30 Jun 2022 02:23:47 +0000 +Police Brutality, Misconduct and Shootings +Police Department (New Haven, Conn) +Gray, Freddie (1989-2015) +New Haven (Conn) + + +Processed Meat and Health Risks: What to Know +https://www.nytimes.com/2022/06/29/well/eat/processed-meats.html +https://www.nytimes.com/2022/06/29/well/eat/processed-meats.html + +Here’s what the experts say. +Sophie Egan +Wed, 29 Jun 2022 13:33:42 +0000 +Meat +Cooking and Cookbooks +Content Type: Service +Hazardous and Toxic Substances +Diet and Nutrition +Colon and Colorectal Cancer +Cancer +Diabetes +Alzheimer's Disease +Salt +Hot Dogs and Frankfurters +Blood Pressure +Oils and Fats + +Aileen Son for The New York Times + + +The Foods That Keep You Hydrated +https://www.nytimes.com/2022/06/28/well/hydrating-foods.html +https://www.nytimes.com/2022/06/28/well/hydrating-foods.html + +Water doesn’t have to come in eight 8-ounce glasses daily. Fresh fruits and vegetables, and various beverages, are viable sources of hydration. +Hannah Seo +Tue, 28 Jun 2022 14:05:59 +0000 +Dehydration +Heat and Heat Waves + +Suzanne Saroff for The New York Times + + +Do Prepackaged Salad Greens Lose Their Nutrients? +https://www.nytimes.com/2017/11/03/well/eat/do-prepackaged-salad-greens-lose-their-nutrients.html +https://www.nytimes.com/2017/11/03/well/eat/do-prepackaged-salad-greens-lose-their-nutrients.html + +Some greens lose more nutrients than others with washing and storage. +Roni Caryn Rabin +Tue, 13 Jul 2021 12:47:07 +0000 +Vitamins +Salads +Vitamin C +Lettuce +Spinach + +Getty Images + + +Can Technology Help Us Eat Better? +https://www.nytimes.com/2021/02/08/well/diet-glucose-monitor.html +https://www.nytimes.com/2021/02/08/well/diet-glucose-monitor.html + +A new crop of digital health companies is using blood glucose monitors to transform the way we eat. +Anahad O’Connor +Tue, 21 Dec 2021 14:04:39 +0000 +Diet and Nutrition +Sugar +Wearable Computing +Diabetes +Heart + +Leann Johnson + + +Is Alkaline Water Really Better for You? +https://www.nytimes.com/2018/04/27/well/eat/alkaline-water-health-benefits.html +https://www.nytimes.com/2018/04/27/well/eat/alkaline-water-health-benefits.html + +What’s behind the claims that alkaline water will “energize” and “detoxify” the body and lead to “superior hydration”? +Alice Callahan +Sat, 09 Jun 2018 00:27:38 +0000 +Water +Diet and Nutrition +Content Type: Service + +iStock + + +Artists Scrutinize Nazi Family Past of Julia Stoschek +https://www.nytimes.com/2022/06/29/arts/julia-stoschek-nazi-family-past.html +https://www.nytimes.com/2022/06/29/arts/julia-stoschek-nazi-family-past.html + +As word circulated of a link between Julia Stoschek’s fortune and forced labor in World War II, some began questioning the ethics of working with the billionaire art patron. +Thomas Rogers +Wed, 29 Jun 2022 18:42:33 +0000 +Collectors and Collections +Art +Holocaust and the Nazi Era +World War II (1939-45) +High Net Worth Individuals +Stoschek, Julia +Stoschek, Julia, Collection +Brose, Max (1884-1968) +Germany + +Gordon Welters for The New York Times +Julia Stoschek said she embraced any inspection of her family fortune. “It’s very important that the art scene, as has been the case recently, looks at where money is coming from,” she said. + + + +""" +xml_link = 'https://news.yahoo.com/rss/' +xml_items = [{ + 'description': 'A reluctance by some liberal district attorneys to bring criminal charges against abortion providers is already complicating the legal landscape in some states.', + 'image': 'https://static01.nyt.com/images/2022/06/29/us/29abortion-enforcement03/29abortion-enforcement03-moth.jpg', + 'link': 'https://www.nytimes.com/2022/06/29/us/abortion-enforcement-prosecutors.html', + 'pubDate': 'Wed, 29 Jun 2022 21:41:55 +0000', + 'title': 'In States Banning Abortion, a Growing Rift Over Enforcement'}] +xml_title = 'NYT > Top Stories' +news_valid_link = 'https://news.yahoo.com/spit-disrespect-arrive-wimbledon-tennis-220151441.html' +news_invalid_link = 'https://www.cnbc/world-top-news/' + + +class RssTest(unittest.TestCase): + def no_title_parse_xml_test(self): + self.assertEqual(reader.parse_xml(''), ('Invalid source, provide a new one', [])) + + def parse_xml_test(self): + print(reader.parse_xml(xml_content,)) + self.assertEqual(reader.parse_xml(xml_content,), + ('BuzzFeed News', """[{'title': 'She Was One Year Away From Going To College. Then The Taliban Banned Her From School.', 'link': 'https://www.buzzfeednews.co +m/article/syedzabiullah/afghanistan-taliban-girls-school-ban', 'pubDate': 'Mon, 13 Jun 2022 20:32:05 -0400', 'image': 'No image found', 'description': + '

The policy prohibiting girls from attending school after sixth grade contradicts the regime’s previous promises to loosen restrictions on educat +ion rights.


View Entire Post ›

'}, {'title': 'I, A Brit, Went To Tokyo, And Here Are 18 Things I Noticed That Are Pretty Effing Differ +ent From The UK', 'link': 'https://www.buzzfeed.com/sam_cleal/interesting-facts-japan-vs-uk', 'pubDate': 'Tue, 28 Jun 2022 00:52:02 -0400', 'image': ' +No image found', 'description': '

Yes, that is a rabbit on a lead.


View Entire Post ›

'}, {'title': 'Prince George, Princess Charlotte, And Prince Louis +Played A Starring Role In The Trooping The Colour', 'link': 'https://www.buzzfeednews.com/article/ellievhall/george-charlotte-louis-prince-princess-tr +ooping-colour', 'pubDate': 'Thu, 02 Jun 2022 21:25:05 -0400', 'image': 'No image found', 'description': '

The Cambridge children rode in a carriage + during the Queen\'s birthday parade as part of her Platinum Jubilee celebrations.


View Entire Post ›

'}, {'title': 'Ji +ll Biden Made A Surprise Visit To Ukraine To Meet With Their First Lady', 'link': 'https://www.buzzfeednews.com/article/davidmack/jill-biden-ukraine-f +irst-lady', 'pubDate': 'Mon, 09 May 2022 18:54:59 -0400', 'image': 'No image found', 'description': '

Olena Zelenska had not been seen in public si +nce Russia\'s invasion of Ukraine began in February.


View Entire Post ›

'}, {'title': 'The WHO Has Nearly Tripled Its Estimate Of The Pandemic’s +Death Toll', 'link': 'https://www.buzzfeednews.com/article/peteraldhous/who-covid-death-count-15-million', 'pubDate': 'Fri, 06 May 2022 11:25:05 -0400 +', 'image': 'No image found', 'description': '

The UN’s health agency has embraced statistical methods that put the true toll of the pandemic at ar +ound 15 million. Will it shock nations that are denying the severity of COVID-19 into action?


View Entire Post ›

'}, {'title': 'A Former Mar +ine Was Freed From “Wrongful Detention” In Russia, But Concerns Remain For Brittney Griner And Others', 'link': 'https://www.buzzfeednews.com/article/ +davidmack/brittney-griner-trevor-reed-paul-whelan-russia', 'pubDate': 'Thu, 28 Apr 2022 17:25:10 -0400', 'image': 'No image found', 'description': 'Trevor Reed\'s release from Russia highlighted concerns over the continued detention of WNBA star Brittney Griner and another former Marine, Paul Wh +elan.


View Entire Post ›

'}, {'title': 'The UK Was Warned This Counterterrorism Program Was A Disaster — But Rolled It Out Anyw +ay', 'link': 'https://www.buzzfeednews.com/article/richholmes/uk-manchester-bombing-counterterrorism-failures', 'pubDate': 'Wed, 13 Apr 2022 13:49:26 +-0400', 'image': 'No image found', 'description': '

Revealed: the inside story of how the British government rolled out a dangerously flawed intell +igence-sharing system right as the UK suffered one of its deadliest years from terrorism.


View Entire Post ›

'}, {'title': 'W +orldcoin Promised Free Crypto If They Scanned Their Eyeballs With “The Orb.” Now They Feel Robbed.', 'link': 'https://www.buzzfeednews.com/article/ric +hardnieva/worldcoin-crypto-eyeball-scanning-orb-problems', 'pubDate': 'Tue, 26 Apr 2022 17:44:33 -0400', 'image': 'No image found', 'description': 'The Sam Altman–founded company Worldcoin says it aims to alleviate global poverty, but so far it has angered the very people it claims to be helping +.


View Entire Post ›

'}, {'title': "Ukraine's President Described Nightmarish War Crimes By Russian Forces In Bucha", 'link +': 'https://www.buzzfeednews.com/article/davidmack/ukraine-bucha-zelensky-united-nations', 'pubDate': 'Tue, 05 Apr 2022 18:23:37 -0400', 'image': 'No +image found', 'description': '

President Volodymyr Zelensky used a rare address to the United Nations to describe horrific scenes of death in his c +ountry — and to criticize the Security Council as essentially useless.


View Entire Post ›

'}, {'title': "It's Cherry Blossom Season And T +he Photos Are Gorgeous", 'link': 'https://www.buzzfeednews.com/article/piapeterson/cherry-blossom-season-photos', 'pubDate': 'Mon, 04 Apr 2022 16:33:4 +2 -0400', 'image': 'No image found', 'description': '

How did we get so lucky to live in a world with flowers this pink.


View Entire Post ›

'}, {'title': '“It’s Now Or Never”: The Next Three Ye +ars Are Crucial To Preventing The Worst Impacts Of Climate Change', 'link': 'https://www.buzzfeednews.com/article/zahrahirji/climate-change-report-war +ning-ipcc', 'pubDate': 'Mon, 04 Apr 2022 17:13:59 -0400', 'image': 'No image found', 'description': '

"We are on a fast track to climate disaster," + United Nations Secretary-General António Guterres said.


View Entire Post ›

'}, {'title': 'Russia Has Banned Facebook And Instagram After La +beling Meta\'s Activities “Extremist"', 'link': 'https://www.buzzfeednews.com/article/christopherm51/russia-facebook-instagram-ban-extremist-organizat +ion', 'pubDate': 'Tue, 22 Mar 2022 22:54:46 -0400', 'image': 'No image found', 'description': '

Individuals won’t be held liable for using the two +social media networks, but paying for ads can be regarded as financing an “extremist” group.


View Entire Post ›

'}, { +'title': "Brittney Griner's Detention In Russia Has Reportedly Been Extended For Two More Months", 'link': 'https://www.buzzfeednews.com/article/david +mack/brittney-griner-russia-arrest', 'pubDate': 'Mon, 04 Apr 2022 15:44:41 -0400', 'image': 'No image found', 'description': '

The WNBA star was de +tained at a Moscow airport on drug charges. Supporters fear she\'s being held as a political hostage amid Russia\'s war in Ukraine.


View Entire Post › +

'}, {'title': 'What You’re Feeling Isn’t A Vibe Shift. It’s Permanent Change.', 'link': 'https://www.buzzfeednews.com/article/elaminabdelmahmo +ud/vibe-shift-war-in-ukraine', 'pubDate': 'Fri, 18 Mar 2022 19:25:09 -0400', 'image': 'No image found', 'description': '

I was born during the long +est period of global stability. Now, it appears all of that is fleeting.


View Entire Post ›

'}, {'title': 'This Ukrainian Mother Buried Bo +th Of Her Sons Just Six Days Apart', 'link': 'https://www.buzzfeednews.com/article/christopherm51/ukraine-brothers-killed-same-family', 'pubDate': 'We +d, 16 Mar 2022 19:34:18 -0400', 'image': 'No image found', 'description': '

“God takes the very best ones.”


View Entire Post ›

'}, +{'title': 'Russian Oligarch Roman Abramovich Invested At Least $1.3 Billion With US Financiers, Secret Records Show', 'link': 'https://www.buzzfeednew +s.com/article/tomwarren/roman-abramovich-billion-invested-united-states-financiers', 'pubDate': 'Wed, 16 Mar 2022 17:38:25 -0400', 'image': 'No image +found', 'description': '

European governments have frozen the Russian oligarch’s assets, including mansions and a soccer team. But how much he pour +ed into the US has stayed secret.


View Entire Post ›

'}, {'title': "A Fox News Camera Operator And A Local Journalis +t Were Killed Covering Russia's War In Ukraine", 'link': 'https://www.buzzfeednews.com/article/davidmack/fox-news-cameraman-pierre-zakrzewski-killed-u +kraine', 'pubDate': 'Wed, 16 Mar 2022 13:31:52 -0400', 'image': 'No image found', 'description': '

Pierre Zakrzewski, 55, and Oleksandra "Sasha" Ku +vshynova, 24, were killed when their vehicle was hit by incoming fire near Kyiv on Monday, according to the network.


View Entire Post &r +saquo;

'}, {'title': "A Staffer Crashed Russia's Main Evening Newscast With An Anti-War Sign", 'link': 'https://www.buzzfeednews.com/article/da +vidmack/russian-tv-employee-anti-war-protest-live', 'pubDate': 'Tue, 15 Mar 2022 17:12:15 -0400', 'image': 'No image found', 'description': '

“Stop + the war. Don’t believe the propaganda. They’re lying to you,” Marina Ovsyannikova\'s sign read.


< +p>View Entire Post ›

'}, {'title': "T +his Russian Newsroom Has Been Cut Off From Its Readers Amid Putin's War. Now It's Asking The World To Help It Report The Truth.", 'link': 'https://www +.buzzfeednews.com/article/skbaer/meduza-crowdfunding-campaign-russia-war-ukraine', 'pubDate': 'Mon, 14 Mar 2022 14:56:59 -0400', 'image': 'No image fo +und', 'description': '

Meduza, a Russian news site based in Latvia, is seeking 30,000 new supporters so that it can continue to deliver independent + news to millions in Russia.


View Entire Post +›

'}, {'title': 'A US Reporter Was Shot Dead While Covering The War In Ukraine', 'link': 'https://www.buzzfeednews.com/article/davidmack +/brent-renaud-reporter-killed-ukraine-war', 'pubDate': 'Mon, 14 Mar 2022 21:49:39 -0400', 'image': 'No image found', 'description': '

White House n +ational security adviser Jake Sullivan said Brent Renaud\'s death was "shocking and horrifying" and pledged that the US would investigate and respond +appropriately.


View Entire Post ›

'}, {'title': "How Russia’s Top Propagandist Foretold Putin's Justification For The Ukraine Invasio +n Through This Dramatic Film", 'link': 'https://www.buzzfeednews.com/article/deansterlingjones/russia-yevgeny-prigozhin-ukraine-trump-giuliani-films', + 'pubDate': 'Sat, 12 Mar 2022 18:25:06 -0500', 'image': 'No image found', 'description': '

“Putin’s chef” Yevgeny Prigozhin’s network of state medi +a sites used commissioned Cameo videos from Donald Trump Jr. and Rudy Giuliani to publicize another film that reimagines Russia’s role in the 2016 ele +ction.


View Entire Post ›

'}, {'title': 'Inside Project Texas, TikTok’s Big Answer To US Lawmakers’ China Fears', + 'link': 'https://www.buzzfeednews.com/article/emilybakerwhite/tiktok-project-texas-bytedance-user-data', 'pubDate': 'Fri, 11 Mar 2022 15:52:52 -0500' +, 'image': 'No image found', 'description': '

TikTok is rebuilding its systems to keep US user data in the US and putting a new US-based team in co +ntrol. But for now, that team reports to executives in China.


View Entire Post ›

'}, {'title': 'The Biden Administration Has B +een Planning To Tell Mexico That A Trump-Era Policy Could Soon End And Attract More Immigrants To The Border', 'link': 'https://www.buzzfeednews.com/a +rticle/hamedaleaziz/biden-border-plans-title-42', 'pubDate': 'Thu, 10 Mar 2022 22:31:51 -0500', 'image': 'No image found', 'description': '

Returni +ng to prepandemic practices could “seriously strain” border resources and lead to a challenging humanitarian situation in northern Mexico, a draft Dep +artment of Homeland Security document warns.


View Entire Post ›

'}, {'title': "The War In Ukraine Exposes The World's Utter Reliance On Fossil F +uels", 'link': 'https://www.buzzfeednews.com/article/zahrahirji/russia-ukraine-war-fossil-fuels-climate-change', 'pubDate': 'Fri, 11 Mar 2022 00:06:07 + -0500', 'image': 'No image found', 'description': '

“The role of oil and gas in the global economy is very deeply embedded, so any shift is going +to take a long time,” one expert said.


View Entire Post ›

'}, {'title': 'Bipartisan Bill Aims To Stamp Out Human Rights Abuses A +t Conservation Projects', 'link': 'https://www.buzzfeednews.com/article/tomwarren/house-bill-human-rights-wwf', 'pubDate': 'Thu, 10 Mar 2022 16:56:17 +-0500', 'image': 'No image found', 'description': '

Lawmakers say a new bill — prompted by a 2019 BuzzFeed News investigation — would “signal to the world that the United States demands the highest standards of res +pect for every human life.”


View Entire Post ›

'}, {'title': 'Russian Troops Pounded The Town Of Irpin. Now They’re Moving Into Ukrainians’ Homes +.', 'link': 'https://www.buzzfeednews.com/article/christopherm51/ukrainians-fleeing-russian-bombing-irpin', 'pubDate': 'Mon, 14 Mar 2022 14:36:48 -040 +0', 'image': 'No image found', 'description': '

“For many years, Russians tell us, ‘We’re brothers! We’re one people!’ But look — they’re killing u +s!”


View Entire Post ›

'}, {'title': '“Our Duty”: Ukrainian Surgeons Are Operating On Russian Soldiers Wounded In Ukraine', 'lin +k': 'https://www.buzzfeednews.com/article/christopherm51/ukraine-surgeons-wounded-russian-soldiers', 'pubDate': 'Mon, 07 Mar 2022 22:25:05 -0500', 'im +age': 'No image found', 'description': '

“I think we should help them but of course sometimes the feeling I have about it is horrible,” Vitaliy, a +surgeon in Kyiv, told BuzzFeed News. “It feels like I’m doing something wrong.”


View Entire Post ›

'}, {'title': 'Here’s What The + New Climate Report Says About The Future Of My 1-Year-Old Daughter', 'link': 'https://www.buzzfeednews.com/article/zahrahirji/climate-toddler-future' +, 'pubDate': 'Mon, 07 Mar 2022 16:23:53 -0500', 'image': 'No image found', 'description': '

Not halting global warming, said one expert, “would be +the final, truly unfair thing to do to a generation of kids coming up right now.”


View Entire Post ›

'}, {'title': 'A Ukrainian Nuclear Plant Is Now A +War Zone. Here’s What That Means.', 'link': 'https://www.buzzfeednews.com/article/danvergano/ukrainian-nuclear-plant-russia-war-zone', 'pubDate': 'Sat +, 05 Mar 2022 18:29:27 -0500', 'image': 'No image found', 'description': '

“We are in completely uncharted waters,” the head of the International A +tomic Energy Agency said.


View Entire Post ›

'}, {'title': 'Facebook And Twitter Have Been Blocked In Russia', 'link': 'https://www.b +uzzfeednews.com/article/sarahemerson/russia-blocks-facebook-twitter', 'pubDate': 'Sat, 05 Mar 2022 04:25:06 -0500', 'image': 'No image found', 'descri +ption': '

Russia’s communications regulator said it blocked Facebook because of “discrimination against Russian media and information resources." T +witter was blocked shortly after.


View Entire Post ›

'}, {'title': "Russia's Invasion Is Breaking Up Ukrainian Families And The Photos Are Hear +tbreaking", 'link': 'https://www.buzzfeednews.com/article/davidmack/ukraine-family-farewell-photos-men-stay-fight', 'pubDate': 'Sun, 06 Mar 2022 06:25 +:06 -0500', 'image': 'No image found', 'description': '

More than 1.2 million Ukrainians have fled their homeland, but many others are staying to f +ight, leading to emotional scenes at train stations as families say their goodbyes.


View Entire Post ›

'}, {'title': 'Poland’s Top Diplomat In Kyiv Is Pretty Chill About Russia’s Inva +sion Because The City Is “Un-Occupiable”', 'link': 'https://www.buzzfeednews.com/article/christopherm51/poland-ambassador-kyiv-invasion', 'pubDate': ' +Fri, 04 Mar 2022 11:25:06 -0500', 'image': 'No image found', 'description': '

“If Russia succeeds here, we are next.”


View Entire Post ›< +/p>'}, {'title': 'Federal Lawmakers Worry Russian Leaders Are Using Crypto To Avoid Sanctions', 'link': 'https://www.buzzfeednews.com/article/saraheme +rson/federal-lawmakers-worry-russian-leaders-are-using-crypto-to', 'pubDate': 'Wed, 02 Mar 2022 21:05:23 -0500', 'image': 'No image found', 'descripti +on': '

US officials continue to scrutinize cryptocurrency markets for their potential role in aiding Russia’s avoidance of sweeping sanctions.

+


View Entire Post ›

'}, {'title': 'Google Maps Blocked Edits After People Falsely Claimed It Was Used to Coordinate R +ussian Air Strikes', 'link': 'https://www.buzzfeednews.com/article/sarahemerson/russia-google-maps-tags-ukraine', 'pubDate': 'Fri, 04 Mar 2022 00:35:3 +5 -0500', 'image': 'No image found', 'description': '

Ukrainian-language accounts claimed edits targeted gas stations, schools, and hospitals in ci +ties like Kyiv.


View Entire Post ›

'}, {'title': 'Ukrainians Are Desperately Trying To Flee Kyiv As The Russians Advance: “It’s An Absolute N +ightmare”', 'link': 'https://www.buzzfeednews.com/article/christopherm51/ukrainians-flee-kyiv-russian-invasion', 'pubDate': 'Tue, 08 Mar 2022 00:10:52 + -0500', 'image': 'No image found', 'description': '

Thousands of people struggled to board the last trains out of the capital city, forcing famili +es to separate and leave loved ones behind.


View +Entire Post ›

'}, {'title': "Hackers Answered Ukraine's Call For Help. Experts Fear It Isn't Enough.", 'link': 'https://www.buzzfeednews +.com/article/amansethi/ukraine-hacker-cyber-army-russia', 'pubDate': 'Wed, 02 Mar 2022 08:25:05 -0500', 'image': 'No image found', 'description': '

“Nobody\'s ever crowdfunded or crowdsourced cyber defense before. So we\'re in uncharted territory.”


View Entire Post ›

'}, {'title': 'These I +CE Detainees With High-Risk Medical Conditions Fought For Months To Be Released — And They’re Just The Ones We Know About', 'link': 'https://www.buzzf +eednews.com/article/adolfoflores/asylum-seekers-medical-release-delays', 'pubDate': 'Tue, 01 Mar 2022 23:00:52 -0500', 'image': 'No image found', 'des +cription': '

“The lack of medical care is leading to some pretty scary situations for people who are detained there for months and months,” one att +orney said.


View Entire Post ›

'}, {'title': 'The Internet’s Response To Ukraine Has Been Peak Cringe', 'link': 'https://www.buzzfeed +news.com/article/stephaniemcneal/ukraine-memes-tiktok-tweets', 'pubDate': 'Tue, 01 Mar 2022 23:25:06 -0500', 'image': 'No image found', 'description': + '

From Zelensky thirst traps to Star Wars memes, the collective obsession with virality has led to some embarrassing and insensitive posts. +


Vie +w Entire Post ›

'}, {'title': "These Photos Show What It's Like For 500,000 Ukrainians Fleeing Russia's Invasion", 'link': 'https://www. +buzzfeednews.com/article/katebubacz/russia-invasion-ukraine-refugees-photos', 'pubDate': 'Tue, 01 Mar 2022 13:25:07 -0500', 'image': 'No image found', + 'description': '

Ukrainians are fleeing the Russian invasion by foot, train, and car to reach neighboring countries, often enduring a challenging +journey at train stations and borders.


View Entir +e Post ›

'}, {'title': 'Ukraine Tweeted Its Cryptocurrency Wallet And Got $4 Million In Donations To Help Fight Russia', 'link': 'https: +//www.buzzfeednews.com/article/katienotopoulos/ukraine-has-asked-for-donations-in-crypto-to-help-fight', 'pubDate': 'Mon, 28 Feb 2022 20:45:19 -0500', + 'image': 'No image found', 'description': '

A source who confirmed the government’s fundraiser believed the funds would go to “exterminate as many + Russian occupants as possible.”


View Entire Post ›

'}, {'title': 'Russia Has Now Been Booted From Eurovision Fo +r Invading Ukraine', 'link': 'https://www.buzzfeednews.com/article/davidmack/eurovision-ban-russia', 'pubDate': 'Fri, 04 Mar 2022 22:26:46 -0500', 'im +age': 'No image found', 'description': '

A number of other European countries had indicated they would not participate in this year\'s popular song + contest unless Russia was kicked out for its invasion of Ukraine.


View Entire Post ›

'}, {'title': 'Photos Show How People Around The World Are Respondin +g To Russia Invading Ukraine', 'link': 'https://www.buzzfeednews.com/article/piapeterson/russia-invasion-ukraine-world-protests-photos', 'pubDate': 'F +ri, 04 Mar 2022 21:26:34 -0500', 'image': 'No image found', 'description': '

From Japan to Turkey, people showed up with flags, traditional Ukraini +an clothing, and signs to protest Russia\'s deadly invasion of Ukraine.


View Entire Post ›

'}, {'title': 'Russian Troops Have E +ntered Kyiv, Putting Ukraine’s Democratically Elected Government In The Crosshairs', 'link': 'https://www.buzzfeednews.com/article/skbaer/kyiv-russian +-invasion', 'pubDate': 'Fri, 04 Mar 2022 22:15:14 -0500', 'image': 'No image found', 'description': '

“Last time our capital experienced anything l +ike this was in 1941 when it was attacked by Nazi Germany.”


View Entire Post ›

'}, {'title': 'This Is What It Was Like In Ukraine When Russia’s Attack Change +d Everything', 'link': 'https://www.buzzfeednews.com/article/christopherm51/russian-attack-ukraine-experience', 'pubDate': 'Wed, 09 Mar 2022 09:17:39 +-0500', 'image': 'No image found', 'description': '

The blasts shook the walls, illuminated my room even through thick curtains, and jolted me up.< +/h1>


< +p>View Entire Post ›

'}, {'title': "Thou +sands Of Russians, Including Celebrities, Are Risking Being Arrested To Protest Putin's Invasion Of Ukraine", 'link': 'https://www.buzzfeednews.com/ar +ticle/juliareinstein/russian-protest-ukraine-invasion', 'pubDate': 'Mon, 28 Feb 2022 03:25:05 -0500', 'image': 'No image found', 'description': '

T +housands of Russians, including celebrities, protested the deadly invasion of Ukraine on Thursday despite government warnings of "severe punishment."< +/h1>


+View Entire Post ›

'}, {'title': 'Russia Has Invaded Ukraine, Threatening The Safety Of Millions', 'link': 'https://www.buzzfeednews.com +/article/christopherm51/russia-invades-ukraine', 'pubDate': 'Fri, 25 Feb 2022 17:45:43 -0500', 'image': 'No image found', 'description': '

Russian +shells and missiles hit cities and regions across the country, including many previously untouched by the conflict. “Don’t understand how this can hap +pen in the 21st century,” one Ukrainian civilian seeking safety said.


View Entire Post ›

'}, {'title': '9 Photo Stories That Will Challenge Your View Of The World', 'link': 'https://www.buzzfeednews +.com/article/piapeterson/photo-stories-feb-19', 'pubDate': 'Tue, 22 Feb 2022 17:35:16 -0500', 'image': 'No image found', 'description': '

Here are +some of the most interesting and powerful photo stories from across the internet.


View Entire Post ›

'}, {'title': 'Prince Charles Thanked The Queen F +or Giving Her Blessing For Camilla To Become "Queen Consort"', 'link': 'https://www.buzzfeednews.com/article/davidmack/queen-elizabeth-platinum-jubile +e-charles-camilla', 'pubDate': 'Tue, 08 Feb 2022 04:16:09 -0500', 'image': 'No image found', 'description': '

Sunday marks 70 years since Queen Eli +zabeth II assumed the throne. She\'s the first British monarch to ever reach the so-called Platinum Jubilee.


View Entire Post ›< +/p>'}, {'title': 'Was This Shirt Made With Forced Labor? Hugo Boss Quietly Cut Ties With The Supplier.', 'link': 'https://www.buzzfeednews.com/article +/alison_killing/hugo-boss-removes-esquel-xinjiang-forced-labor', 'pubDate': 'Thu, 03 Feb 2022 15:12:37 -0500', 'image': 'No image found', 'description +': '

Hugo Boss distanced itself from a major clothing manufacturer shortly after a BuzzFeed News report on its links to cotton in Xinjiang, which the US has banned.


View Entire Post ›

'}, {'title': 'These Moving Photos Show The Lives Of Holocaust Survivors Today', 'link': 'https://www.buzzfeednews. +com/article/piapeterson/photos-holocaust-survivors-lives', 'pubDate': 'Fri, 28 Jan 2022 16:33:47 -0500', 'image': 'No image found', 'description': 'The photo exhibition shows how their lives and legacies are being passed down the generations, reminding us collectively how important it is that th +ey are remembered.


View Entire Post ›

'}, {'title': '7 Photo Stories That Will Challenge Your View Of The World', 'link': 'https://www.buz +zfeednews.com/article/piapeterson/7-photo-stories-that-will-challenge-your-view-of-the-world', 'pubDate': 'Tue, 18 Jan 2022 16:25:10 -0500', 'image': +'No image found', 'description': '

Here are some of the most interesting and powerful photo stories from across the internet.


View Entire Post ›

'}, {'title': 'Facebook’s Spanish-Language Moderators Are Calling Their Work A “Nightmare”', 'link': 'https://www.bu +zzfeednews.com/article/sarahemerson/facebooks-spanish-language-moderators-said-theyre-treated', 'pubDate': 'Fri, 14 Jan 2022 00:48:16 -0500', 'image': + 'No image found', 'description': '

Contractors who moderate Spanish-language content on Facebook said they’ve been forced to come to the office du +ring COVID surges.


View Entire Post ›

'}, {'title': 'Hugo Boss And Other Big Brands Vowed To Steer Clear Of Forced Labor In China — + But These Shipping Records Raise Questions', 'link': 'https://www.buzzfeednews.com/article/alison_killing/xinjiang-forced-labor-hugo-boss-esquel', 'p +ubDate': 'Wed, 19 Jan 2022 19:44:03 -0500', 'image': 'No image found', 'description': '

Amid rising tensions and the approaching Beijing Olympics, +the US banned Xinjiang cotton last year. But Hugo Boss still took shipments from Esquel, which gins cotton in Xinjiang.


View Entire Post &rsaqu +o;

'}, {'title': 'Novak Djokovic Has To Leave Australia After His COVID Vaccine Exemption Visa Was Canceled', 'link': 'https://www.buzzfeednews +.com/article/davidmack/novak-djokovic-australian-airport-visa-canceled', 'pubDate': 'Thu, 06 Jan 2022 18:25:13 -0500', 'image': 'No image found', 'des +cription': '

The decision means the top-ranked tennis player will likely miss the Australian Open. “They expect to be on the flight back home later + in the day,” a source told BuzzFeed News.


View Entire Post ›

'}, {'title': 'Photos Show A Year Of Catastrophic Events Due To C +limate Change', 'link': 'https://www.buzzfeednews.com/article/piapeterson/climate-change-2021-photos', 'pubDate': 'Wed, 29 Dec 2021 13:21:28 -0500', ' +image': 'No image found', 'description': '

We looked back at the year in climate change and the disasters we\'ll be seeing more often as our world +is altered by climate-polluting fossil fuels.


View Entire Pos +t ›

'}, {'title': 'Satellite Images Show Russian Military Forces Keep Massing Near Ukraine’s Border', 'link': 'https://www.buzzfeednews. +com/article/christopherm51/russia-troops-ukraine-border-satellite-photos', 'pubDate': 'Tue, 22 Feb 2022 18:06:40 -0500', 'image': 'No image found', 'd +escription': '

Satellite images provided to BuzzFeed News and a slew of social media videos show that new Russian troops and heavy artillery were m +oved to strategic locations right around Biden and Putin’s virtual summit.


View Entire Post ›

'}, {'title': 'Barbados Ditch +ed The Queen And Immediately Declared Rihanna A National Hero', 'link': 'https://www.buzzfeednews.com/article/davidmack/barbados-republic-rihanna', 'p +ubDate': 'Wed, 01 Dec 2021 17:25:11 -0500', 'image': 'No image found', 'description': '

“May you continue to shine like a diamond."


View Entire Post ›

'}, {'title': 'They Arrived At The Pub On Friday + Night. They Left Monday Morning.', 'link': 'https://www.buzzfeednews.com/article/davidmack/stranded-pub-snow-england', 'pubDate': 'Wed, 15 Dec 2021 2 +2:59:02 -0500', 'image': 'No image found', 'description': '

"It was like an adult sleepover!”


+

View Entire Post ›

'}, {'title': 'Clearview AI Is +Facing A $23 Million Fine Over Facial Recognition In The UK', 'link': 'https://www.buzzfeednews.com/article/richardnieva/clearview-ai-faces-potential- +23-million-fine-over-facial', 'pubDate': 'Tue, 30 Nov 2021 02:52:08 -0500', 'image': 'No image found', 'description': '

The provisional decision co +mes after a series of BuzzFeed News investigations revealing widespread and sometimes unsanctioned use of the company’s facial recognition software ar +ound the world.


View Entire Post ›

'}, {'title': 'A Chinese Tennis Star Accused A Top Official Of Sexual Assault +. Then She Disappeared.', 'link': 'https://www.buzzfeednews.com/article/davidmack/peng-shuai-missing-mystery', 'pubDate': 'Sat, 20 Nov 2021 02:25:08 - +0500', 'image': 'No image found', 'description': '

Tennis stars are demanding answers about Peng Shuai, whose disappearance has again underscored C +hina’s brutal authoritarianism just months before it hosts the Winter Olympics.


View Entire Post ›

'}, {'title': 'Prevent Catastrophic Climate Chan +ge Or Keep Burning Coal? You Can’t Have Both.', 'link': 'https://www.buzzfeednews.com/article/zahrahirji/climate-change-coal-power-paris-agreement', ' +pubDate': 'Fri, 12 Nov 2021 17:17:15 -0500', 'image': 'No image found', 'description': '

"By 2030 in the United States, we won’t have coal,” US Spe +cial Presidential Envoy for Climate John Kerry claimed this week.


View Entire Post ›

'}, {'title': 'Amazing Photos Of Airport Reun +ions After The Coronavirus Pandemic Separated Families', 'link': 'https://www.buzzfeednews.com/article/piapeterson/airport-reunions-covid-restrictions +-lifted-photos', 'pubDate': 'Fri, 12 Nov 2021 00:22:38 -0500', 'image': 'No image found', 'description': '

Countries like the US and Australia are +reopening their borders to vaccinated travelers, making for emotional reunions nearly two years in the making at airports around the world.


View Entire Post ›

'}, {'title': 'Why + Facebook Shutting Down Its Old Facial Recognition System Doesn’t Matter', 'link': 'https://www.buzzfeednews.com/article/emilybakerwhite/facebook-face +prints-are-the-tip-of-the-biometric-iceberg', 'pubDate': 'Sat, 06 Nov 2021 16:05:41 -0400', 'image': 'No image found', 'description': '

Facebook ju +st made a big deal of shutting down its original facial recognition system. But the company’s pivot to the metaverse means collecting more personal in +formation than ever before.


View Entire Post ›

'}, {'title': 'The World Is On Track To Warm 3 Degrees Celsius T +his Century. Here’s What That Means.', 'link': 'https://www.buzzfeednews.com/article/zahrahirji/global-warming-3-degrees-celsius-impact', 'pubDate': ' +Thu, 04 Nov 2021 14:31:49 -0400', 'image': 'No image found', 'description': '

Our current coastlines gone. Bangkok underwater. Massive declines in +the fish population. More droughts, downpours, and heat waves.


View Entire Post ›

'}, {'title': 'How The Pandemic Severed One Of Sou +thern Africa’s Main Economic Lifelines', 'link': 'https://www.buzzfeednews.com/article/markophiri/zimbabwe-cross-border-traders-pandemic', 'pubDate': +'Tue, 09 Nov 2021 00:11:02 -0500', 'image': 'No image found', 'description': '

With few options, some traders have turned to smuggling or sex work. + “I work with what I have at the moment,” one woman said.


View Entire Post ›

'}, {'title': 'A Data Sleuth Challenged A Powerful COVID Sci +entist. Then He Came After Her.', 'link': 'https://www.buzzfeednews.com/article/stephaniemlee/elisabeth-bik-didier-raoult-hydroxychloroquine-study', ' +pubDate': 'Tue, 19 Oct 2021 19:01:03 -0400', 'image': 'No image found', 'description': '

Elisabeth Bik calls out bad science for a living. A feud w +ith one of the world’s loudest hydroxychloroquine crusaders shows that it can carry a high price.


< +p>View Entire Post ›

' +}, {'title': 'The DOJ Is Investigating Americans For War Crimes Allegedly Committed While Fighting With Far-Right Extremists In Ukraine', 'link': 'htt +ps://www.buzzfeednews.com/article/christopherm51/craig-lang-ukraine-war-crimes-alleged', 'pubDate': 'Mon, 11 Oct 2021 13:09:22 -0400', 'image': 'No im +age found', 'description': '

The probe involves seven men but is centered on former Army soldier Craig Lang, who is separately wanted in connection + with a double killing in Florida and is fighting extradition from Kyiv.


View Entire Post ›

'}, {'title': 'These Photos Show The Timeless Appeal Of Travel And Tourism', 'link': 'https:// +www.buzzfeednews.com/article/piapeterson/photos-travel-photography-history', 'pubDate': 'Thu, 30 Sep 2021 13:16:02 -0400', 'image': 'No image found', +'description': '

“Now that travel has opened up, you can access more places and see more things. Our definition of travel photography has changed.” +


Vi +ew Entire Post ›

'}, {'title': 'Immigrants Who Escaped The Texas Camp Crackdown Are Facing Another Set Of Dire Circumstances In Mexico', + 'link': 'https://www.buzzfeednews.com/article/adolfoflores/immigrants-mexico-stuck-fear-deportation', 'pubDate': 'Sun, 26 Sep 2021 02:09:15 -0400', ' +image': 'No image found', 'description': '

“I’d like to stay here in Mexico, but I’m scared because I don’t have permission to be here,” one immigr +ant told BuzzFeed News. “I don\'t know what to do."


View Entire Post ›

'}, {'title': "These Pics Of Angela Merkel Covered In Birds Are Now A Meme And It's Sehr Gut", 'link': 'https://w +ww.buzzfeednews.com/article/davidmack/angela-merkel-birds', 'pubDate': 'Wed, 15 Dec 2021 23:02:29 -0500', 'image': 'No image found', 'description': '< +h1>"Instagram vs. Twitter."


View Entire Post ›

'}, {'title': 'How A Mission To Turn A Haitian Town Into A Surfing Destination Failed To Live Up To Its Pro +mise', 'link': 'https://www.buzzfeednews.com/article/karlazabludovsky/haiti-surfing', 'pubDate': 'Wed, 22 Sep 2021 00:09:23 -0400', 'image': 'No image + found', 'description': '

Surfing was a profitable enterprise in Jacmel, as locals rented out boards and hosted lessons. But the project’s recent s +truggles reflect the difficulty of obtaining resources in a country battered by a series of catastrophes.

< +/p>


View Entire Post ›

'}, {'title': 'Top Scientis +ts At The FDA And WHO Are Arguing Against COVID-19 Booster Shots', 'link': 'https://www.buzzfeednews.com/article/azeenghorayshi/fda-who-booster-shots- +opposition', 'pubDate': 'Wed, 15 Sep 2021 14:38:06 -0400', 'image': 'No image found', 'description': '

In a review published on Monday, the experts + said the evidence does not show that boosters are needed for the general population.


View Entire Post ›

'}, {'title': 'Prince Andrew Has + Been Served With A Sexual Abuse Lawsuit By Jeffrey Epstein Accuser Virginia Giuffre', 'link': 'https://www.buzzfeednews.com/article/ellievhall/prince +-andrew-served-sexual-assault-lawsuit-giuffre', 'pubDate': 'Fri, 10 Sep 2021 21:15:51 -0400', 'image': 'No image found', 'description': '

The perso +n who served the papers told the court that the first time he tried, Andrew\'s security team said they weren\'t allowed to accept anything court-relat +ed.


View Entire Post ›

'}, {'title': 'He Got Out Of Afghanistan Just In Time. His Family Didn’t.', 'link': 'https://www.b +uzzfeednews.com/article/meghara/afghanistan-kabul-collapse-families-left-behind', 'pubDate': 'Thu, 02 Sep 2021 21:51:59 -0400', 'image': 'No image fou +nd', 'description': '

When Farhad Wajdi left Afghanistan for the US, he assumed he could help his parents get out too. But then everything changed. +


+

View Entire Post ›

'}, {'title +': 'UN Peacekeepers Fathered Dozens Of Children In Haiti. The Women They Exploited Are Trying To Get Child Support.', 'link': 'https://www.buzzfeednew +s.com/article/karlazabludovsky/haiti-earthquake-un-peacekeepers-sexual-abuse', 'pubDate': 'Tue, 31 Aug 2021 19:21:53 -0400', 'image': 'No image found' +, 'description': '

A landmark ruling in a Haitian court offers some hope to the families seeking child support, but the peacekeeper fathers won’t h +ave to pay unless their home countries step in.


View Entire Post ›

'}, {'title': '12 Photo Stories That Will Challenge Your View Of The World', 'link': 'https://www.buzzfeedne +ws.com/article/piapeterson/12-photo-stories-that-will-challenge-your-view-of-the-world', 'pubDate': 'Sun, 29 Aug 2021 22:33:33 -0400', 'image': 'No im +age found', 'description': '

Here are some of the most interesting and powerful photo stories from across the internet.


Vie +w Entire Post ›

'}, {'title': 'Working Women In Afghanistan Are Beginning To Navigate Life Under Taliban Rule', 'link': 'https://www.buz +zfeednews.com/article/nishitajha/afghanistan-nurse-hospital-taliban', 'pubDate': 'Fri, 27 Aug 2021 19:42:25 -0400', 'image': 'No image found', 'descri +ption': '

At a hospital in Kabul, terrified patients fled their beds, a new policy bars interactions between men and women, and nurses and doctors +must check in with the Taliban daily.


View Entire Post ›

'}, {'title': 'These Photos Show The Devastating Aftermath Of The Deadly Kabul Air +port Attack', 'link': 'https://www.buzzfeednews.com/article/kirstenchilstrom/kabul-airport-explosions-aftermath-photos', 'pubDate': 'Fri, 27 Aug 2021 +19:59:20 -0400', 'image': 'No image found', 'description': '

At least 13 US service members and an unknown number of Afghan civilians were killed i +n an explosion at an already chaotic airport.


View Entire Post ›

'}, {'title': "London's Famous Notting Hill Carnival Is Canc +eled This Year, But Here's A Look Back At The Party", 'link': 'https://www.buzzfeednews.com/article/piapeterson/photos-london-notting-hill-carnival-ca +nceled', 'pubDate': 'Fri, 27 Aug 2021 01:21:52 -0400', 'image': 'No image found', 'description': '

Looking back at over five decades of joy put on +by the Black British and Caribbean community in London.


View Entire Post ›

'}, {'title': 'Police In At Least 24 Countries Have +Used Clearview AI. Find Out Which Ones Here.', 'link': 'https://www.buzzfeednews.com/article/ryanmac/clearview-ai-international-search-table', 'pubDat +e': 'Fri, 27 Aug 2021 19:52:07 -0400', 'image': 'No image found', 'description': '

As of February 2020, 88 law enforcement and government-affiliate +d agencies in 24 countries outside the United States have tried to use controversial facial recognition technology Clearview AI, according to a BuzzFe +ed News investigation.


View Entire Post ›

'}, {'title': 'Foreign UN Staffers Are Evacuating Afghanistan. Local Staffers Say They Have Been Left Behind.', 'l +ink': 'https://www.buzzfeednews.com/article/meghara/un-afghanistan-staffers-taliban', 'pubDate': 'Tue, 24 Aug 2021 21:35:22 -0400', 'image': 'No image + found', 'description': '

Afghan nationals who work for the UN take on far greater risks for less pay than their international colleagues, and thei +r work leaves them exposed to Taliban reprisals.


View Entire Post ›

'}, {'title': '7 Photo Stories That Will Challenge Your View Of The World', +'link': 'https://www.buzzfeednews.com/article/piapeterson/photo-stories-aug-21', 'pubDate': 'Sun, 22 Aug 2021 23:44:02 -0400', 'image': 'No image foun +d', 'description': '

Here are some of the most interesting and powerful photo stories from across the internet.


View Entire Post ›

'}, {'title': 'Pe +ople Who Fled Vietnam Are Reliving Their Trauma Watching The Fall Of Kabul', 'link': 'https://www.buzzfeednews.com/article/skbaer/saigon-kabul-compari +son-vietnam-afghanistan', 'pubDate': 'Tue, 24 Aug 2021 17:21:59 -0400', 'image': 'No image found', 'description': '

"I think about my family, about + what they’ve been through ... and I think that what\'s going to happen in Afghanistan [is] going to be so much, even worse than what I can imagine."< +/h1>


View Entire Post ›

'}, {'title': 'She Smuggled Women In Kabul To Safety. Now She’s Hiding From The Taliban.', 'link': 'https://www.bu +zzfeednews.com/article/nishitajha/afghanistan-woman-hiding-taliban-blacklist', 'pubDate': 'Sat, 21 Aug 2021 04:57:53 -0400', 'image': 'No image found' +, 'description': '

Though the Taliban have blacklisted Nilofar Ayoubi, she has insisted on speaking out about women’s rights in Afghanistan.


V +iew Entire Post ›

'}, {'title': 'Big Tech Thought It Had A Billion Users In The Bag. Now It Might Be Forced To Make Hard Choices To Get +Them.', 'link': 'https://www.buzzfeednews.com/article/pranavdixit/big-tech-thought-it-had-a-billion-users-in-the-bag-now-its', 'pubDate': 'Fri, 20 Aug + 2021 18:51:59 -0400', 'image': 'No image found', 'description': '

Long viewed as the world’s biggest market for “the next billion users,” India is + fast becoming Silicon Valley’s biggest headache.


View Entire Post ›

'}, {'title': 'These Photos Of Haiti Show The + Pain And Turmoil From Back-To-Back Natural Disasters', 'link': 'https://www.buzzfeednews.com/article/kirstenchilstrom/haiti-tropical-storm-photos', ' +pubDate': 'Thu, 19 Aug 2021 14:21:54 -0400', 'image': 'No image found', 'description': '

Days after a magnitude 7.2 tremor killed more than 1,400 p +eople, bodies still lie in the streets as officials grapple with the chaos and poor weather.


View Entire Post ›

'}, {'title': 'This Is What The Fall Of Kabul To The Taliban Looks Like', 'link +': 'https://www.buzzfeednews.com/article/katebubacz/the-fall-of-kabul-taliban-photos', 'pubDate': 'Tue, 17 Aug 2021 18:45:25 -0400', 'image': 'No imag +e found', 'description': '

Photos show chaotic scenes at the airport and Taliban soldiers patrolling the streets.


View Entire Post ›

'}, + {'title': '8 Photo Stories That Will Challenge Your View Of The World', 'link': 'https://www.buzzfeednews.com/article/piapeterson/photo-stories-aug-1 +4', 'pubDate': 'Mon, 16 Aug 2021 00:00:58 -0400', 'image': 'No image found', 'description': '

Here are some of the most interesting and powerful ph +oto stories from across the internet.


View Entire Post ›

'}, {'title': 'People Have Fallen In Love With This Herd Of Wild Elephants Looking For A New Ha +bitat In China', 'link': 'https://www.buzzfeednews.com/article/piapeterson/wild-elephant-journey-china', 'pubDate': 'Thu, 12 Aug 2021 14:41:48 -0400', + 'image': 'No image found', 'description': '

More than 150,000 people were evacuated from homes in the elephants\' path, but the animals have becom +e local darlings as fans track their progress.


View Entire P +ost ›

'}, {'title': 'These Photos Show The Immense Scale Of The Wildfires Ravaging Greece', 'link': 'https://www.buzzfeednews.com/articl +e/kirstenchilstrom/greece-wildfires-photos-destruction', 'pubDate': 'Thu, 12 Aug 2021 00:44:02 -0400', 'image': 'No image found', 'description': '

+Thousands of people, many with injured animals, have been forced to flee the wildfires.


View Entire Post ›

'}, {'title': 'Goods Link +ed To A Group That Runs Chinese Detention Camps May Be Ending Up In US Stores', 'link': 'https://www.buzzfeednews.com/article/meghara/china-xinjiang-b +anned-goods-united-states', 'pubDate': 'Fri, 13 Aug 2021 01:22:02 -0400', 'image': 'No image found', 'description': '

A major organization in the r +egion, sanctioned for its “connection to serious human rights abuses against ethnic minorities,” still does business all over the world.


View Entire +Post ›

'}, {'title': "Great Britain's First Black Olympic Swimmer Is Hopeful Swimming Caps For Black Hair Will Be Approved For The Next +Games", 'link': 'https://www.buzzfeednews.com/article/ikrd/first-uk-black-olympic-swimmer-caps', 'pubDate': 'Fri, 13 Aug 2021 10:13:50 -0400', 'image' +: 'No image found', 'description': '

“I know a lot of people want to be on the right side of history with this. So I\'m very optimistic that there\ +'s going to be a positive outcome from it.”


View Entire Post ›

'}, {'title': '“It Is Unequivocal”: Humans Are Driving Worsening Climate Disaster +s, Hundreds Of Scientists Said In A New Report', 'link': 'https://www.buzzfeednews.com/article/zahrahirji/ipcc-climate-change-report-2021', 'pubDate': + 'Wed, 11 Aug 2021 14:12:40 -0400', 'image': 'No image found', 'description': '

The highly anticipated United Nations report on climate change deta +ils both the increasingly dire crisis facing the world and what\'s needed to stop it.


View Entire Post ›

'}, {'title': 'Yes, Delta Is Scary, +But Europe’s Recent COVID Surges Show That It Can Be Controlled', 'link': 'https://www.buzzfeednews.com/article/peteraldhous/delta-variant-wave-uk-eur +ope', 'pubDate': 'Sun, 08 Aug 2021 22:00:03 -0400', 'image': 'No image found', 'description': '

“The UK and Netherlands should be a counsel against + despair,” one expert told BuzzFeed News. “We needn’t be fatalistic about the Delta variant.”


View Entire Post ›

'}, {'title': "Looking Back At + Meghan Markle's Last 15 Years For Her 40th Birthday", 'link': 'https://www.buzzfeednews.com/article/piapeterson/meghan-markle-40th-birthday-photos', +'pubDate': 'Wed, 04 Aug 2021 20:11:49 -0400', 'image': 'No image found', 'description': '

Meghan\'s life has changed dramatically over the past dec +ade — here\'s a look back at her epic journey to being a royal.


View Entire Post ›

'}, {'title': 'Simone Biles Won A Bronze Medal In Her Olympic Return', 'link': 'https://www.buzzfeednews.c +om/article/ikrd/simone-biles-bronze-tokyo', 'pubDate': 'Tue, 03 Aug 2021 16:25:34 -0400', 'image': 'No image found', 'description': '

"I was proud +of myself just to go out there after what I\'ve been through," Biles said afterward.


View Entire Post ›

'}, {'title': 'Simone Biles Will Compete In The Gy +mnastics Balance Beam Final', 'link': 'https://www.buzzfeednews.com/article/ikrd/simone-biles-balance-beam-mental-health', 'pubDate': 'Mon, 02 Aug 202 +1 20:00:53 -0400', 'image': 'No image found', 'description': '

It will be her first appearance since she dropped out of the team all-around competition l +ast week, citing her mental health.


View Entire Post ›

'}, {'title': 'The Uplifting Olympics Content We All Need Right Now', 'link': 'https +://www.buzzfeednews.com/article/kirstenchilstrom/heartwarming-photos-tokyo-olympics', 'pubDate': 'Sat, 31 Jul 2021 03:01:45 -0400', 'image': 'No image + found', 'description': '

These celebratory moments from the Olympics make me want to cry and cheer.


View Entire Post ›

'}, {'title': 'US Olympic Fencers Wore Pink Masks To Protest A +gainst Their Teammate Accused Of Sexual Assault', 'link': 'https://www.buzzfeednews.com/article/tasneemnashrulla/fencers-pink-masks-alen-hadzic', 'pub +Date': 'Tue, 03 Aug 2021 09:25:41 -0400', 'image': 'No image found', 'description': '

Three men on the US épée team took a stand against their team +mate Alen Hadzic\'s inclusion in the Olympics despite sexual assault allegations against him.


+View Entire Post ›

'}, {'title': 'Gorgeou +s Photos Show What The Last Tokyo Olympics Looked Like In 1964', 'link': 'https://www.buzzfeednews.com/article/piapeterson/tokyo-olympics-1964-photos' +, 'pubDate': 'Sat, 31 Jul 2021 21:25:29 -0400', 'image': 'No image found', 'description': '

Over 50 years ago, Tokyo hosted its first modern Olympi +cs. It looked very different from the games today!


View Entire Post ›

'}]""")) + + def valid_parse_link_page_test(self): + self.assertEqual(reader.parse_link_page(news_valid_link), + ("Spit, 'disrespect' arrive at Wimbledon as tennis turns ugly")) + + def invalid_parse_link_page_test(self): + self.assertEqual(reader.parse_link_page(news_invalid_link), 'No description') diff --git a/LianaKalpakchyan/rss_reader/dist/rss_reader-0.4.0-py3-none-any.whl b/LianaKalpakchyan/rss_reader/dist/rss_reader-0.4.0-py3-none-any.whl new file mode 100644 index 00000000..850d95c5 Binary files /dev/null and b/LianaKalpakchyan/rss_reader/dist/rss_reader-0.4.0-py3-none-any.whl differ diff --git a/LianaKalpakchyan/rss_reader/dist/rss_reader-0.4.0.tar.gz b/LianaKalpakchyan/rss_reader/dist/rss_reader-0.4.0.tar.gz new file mode 100644 index 00000000..5decf479 Binary files /dev/null and b/LianaKalpakchyan/rss_reader/dist/rss_reader-0.4.0.tar.gz differ diff --git a/LianaKalpakchyan/rss_reader/requirements.txt b/LianaKalpakchyan/rss_reader/requirements.txt new file mode 100644 index 00000000..4854dac6 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/requirements.txt @@ -0,0 +1,5 @@ +requests +bs4 +dateparser +html5lib +lxml diff --git a/LianaKalpakchyan/rss_reader/rss_reader.egg-info/PKG-INFO b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/PKG-INFO new file mode 100644 index 00000000..d9ef3e74 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/PKG-INFO @@ -0,0 +1,6 @@ +Metadata-Version: 2.1 +Name: rss-reader +Version: 0.4.0 +Summary: Python RSS-reader +Author: Liana Kalpakchyan +Author-email: kalpakchyanliana@gmail.com diff --git a/LianaKalpakchyan/rss_reader/rss_reader.egg-info/SOURCES.txt b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/SOURCES.txt new file mode 100644 index 00000000..5758b610 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/SOURCES.txt @@ -0,0 +1,15 @@ +README.md +setup.py +rss_reader/__init__.py +rss_reader/rss_reader.py +rss_reader/test_rss_reader.py +rss_reader.egg-info/PKG-INFO +rss_reader.egg-info/SOURCES.txt +rss_reader.egg-info/dependency_links.txt +rss_reader.egg-info/entry_points.txt +rss_reader.egg-info/requires.txt +rss_reader.egg-info/top_level.txt +rss_reader/rss_argparser/__init__.py +rss_reader/rss_argparser/rss_argparser.py +rss_reader/rss_save_into/__init__.py +rss_reader/rss_save_into/rss_save_into.py \ No newline at end of file diff --git a/LianaKalpakchyan/rss_reader/rss_reader.egg-info/dependency_links.txt b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/dependency_links.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/LianaKalpakchyan/rss_reader/rss_reader.egg-info/entry_points.txt b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/entry_points.txt new file mode 100644 index 00000000..c43a2cb0 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +rss_reader = rss_reader.rss_reader:main diff --git a/LianaKalpakchyan/rss_reader/rss_reader.egg-info/requires.txt b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/requires.txt new file mode 100644 index 00000000..9be1e5a5 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/requires.txt @@ -0,0 +1,8 @@ +argparse +requests +bs4 +dateparser +datetime +lxml +xhtml2pdf +html5lib diff --git a/LianaKalpakchyan/rss_reader/rss_reader.egg-info/top_level.txt b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/top_level.txt new file mode 100644 index 00000000..4d1a3d9a --- /dev/null +++ b/LianaKalpakchyan/rss_reader/rss_reader.egg-info/top_level.txt @@ -0,0 +1 @@ +rss_reader diff --git a/LianaKalpakchyan/rss_reader/rss_reader/__init__.py b/LianaKalpakchyan/rss_reader/rss_reader/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/LianaKalpakchyan/rss_reader/rss_reader/__pycache__/__init__.cpython-39.pyc b/LianaKalpakchyan/rss_reader/rss_reader/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 00000000..ad9a0a6c Binary files /dev/null and b/LianaKalpakchyan/rss_reader/rss_reader/__pycache__/__init__.cpython-39.pyc differ diff --git a/LianaKalpakchyan/rss_reader/rss_reader/__pycache__/rss_reader.cpython-39.pyc b/LianaKalpakchyan/rss_reader/rss_reader/__pycache__/rss_reader.cpython-39.pyc new file mode 100644 index 00000000..7c12c386 Binary files /dev/null and b/LianaKalpakchyan/rss_reader/rss_reader/__pycache__/rss_reader.cpython-39.pyc differ diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__init__.py b/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/__init__.cpython-38.pyc b/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 00000000..f91d4909 Binary files /dev/null and b/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/__init__.cpython-38.pyc differ diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/__init__.cpython-39.pyc b/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 00000000..86133a70 Binary files /dev/null and b/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/__init__.cpython-39.pyc differ diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/rss_argparser.cpython-38.pyc b/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/rss_argparser.cpython-38.pyc new file mode 100644 index 00000000..21b0621d Binary files /dev/null and b/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/rss_argparser.cpython-38.pyc differ diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/rss_argparser.cpython-39.pyc b/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/rss_argparser.cpython-39.pyc new file mode 100644 index 00000000..f792a64e Binary files /dev/null and b/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/__pycache__/rss_argparser.cpython-39.pyc differ diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/rss_argparser.py b/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/rss_argparser.py new file mode 100644 index 00000000..ff968783 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/rss_reader/rss_argparser/rss_argparser.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +import argparse + + +class Argparser(): + """ + A class to get arguments from CLI + + ... + + Attributes + ---------- + version: str + Keeps the program current version + + Methods + ------- + get_args(): + Implements cli arguments processing + """ + + def __init__(self): + self.version = '0.4.0' + + def get_args(self): + """This function processes arguments received from console using argparse module. + :return: Namespace (args) + """ + parser = argparse.ArgumentParser( + description='One-shot command-line RSS reader ^_^') + parser.add_argument('source', + help='RSS URL', + nargs='?', + default=None) + parser.add_argument('--version', + action='store_true', + help='Print version info') + parser.add_argument('--json', + action='store_true', + help='Print result as JSON in stdout') + parser.add_argument('--verbose', '--v', + action='store_true', + help='Outputs verbose status messages') + parser.add_argument('--limit', + type=int, + help='Limit news topics if this parameter provided', + default=-1) + parser.add_argument('--date', + help='Takes a date. For example: for "--date 20191020" \ + news from the specified day will be printed out.', + type=int, + default=None) + parser.add_argument('--to-pdf', + help='Conversion of news into a PDF format', + nargs='*') + parser.add_argument('--to-html', + help='Conversion of news into an HTML format', + nargs='*') + args = parser.parse_args() + if args.version: + print(f'Program version: {self.version}') + if args.source is None: + exit() + + return args diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_reader.py b/LianaKalpakchyan/rss_reader/rss_reader/rss_reader.py new file mode 100644 index 00000000..56833039 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/rss_reader/rss_reader.py @@ -0,0 +1,391 @@ +#!/usr/bin/env python3 +import os.path +import sys +import time +import json +import logging +import requests +import datetime +import dateparser +from bs4 import BeautifulSoup +from rss_argparser.rss_argparser import Argparser +from rss_save_into.rss_save_into import Converter + + +class Reader: + """ + A class to implement the rss_reader logic + + ... + + Attributes + ---------- + start : float + The start time of the program is expressed in seconds since the epoch, in UTC. + Will be used to calculate the working duration of the program + args : list + Arguments list received from CLI with rss_argparser package + source : str + Provided RSS link + version : str + The current iteration version of the program + json : bool + Flag for activating json mode + verbose : bool + Flag for activation verbose mode + limit : int + Number for quantity of selected news to print or to save + date : int + If provided only news having that date or fresher will be shown + to_pdf : lst + If mentioned only --to-pdf news will be converted into pdf and saved into a default folder for pdf files. + If path is provided will be saved in that path. + to_html : lst + If mentioned only --to-html news will be converted into html and saved into a default folder for html files. + If path is provided will be saved in that path. + cashed_news : str + File name for caching news + + Methods + ------- + verbose_mode(): + Function to activate verbose mode + get_xml(): + Functions gets xml page content with requests + parse_link_page(): + Function searches by a specific news original page and finds description from it + parse_xml(): + Function parses the xml page and separates every item with its details + cashing_news(): + Functions caches all new news into json file + reading_cache(): + Function reads news from cache + json_mode(): + Function activates json mode + items_in_terminal(): + Functions prints news items in terminal (shell) + html_or_pdf(): + Function calls relevant functions to create html, pdf files or both + main(): + Analyze the received data from rss_argparser and run the corresponding functions based on them + """ + + def __init__(self): + self.start = time.time() + self.args = Argparser().get_args() + self.source = self.args.source + self.version = Argparser().version + self.json = self.args.json + self.verbose = self.args.verbose + self.limit = self.args.limit + self.date = self.args.date + self.to_pdf = self.args.to_pdf + self.to_html = self.args.to_html + self.cashed_news = 'cached_news.json' + + def verbose_mode(self): + """ + This function activates verbose mode + :returns None + """ + if self.verbose: + logging.basicConfig( + stream=sys.stdout, format='%(asctime)s - %(levelname)s - %(message)s', level=logging.DEBUG) + logging.debug(f'VERBOSE MODE ACTIVATED') + logging.debug( + f'--version: {self.version}, --json: {self.json}, --verbose: {self.verbose}, --limit: {self.limit}, source: {self.source}') + + def get_xml(self): + """ + Functions requests provided link and gets content of it + :returns None or xml page text + """ + if self.source is None: + print('Please, make sure to provide RSS URL.') + return None + logging.debug('get_xml function is activated') + attempt = 3 + while True: + try: + logging.debug(f'Waiting for response from {self.source}...') + page_response = requests.get(self.source) + if page_response.status_code == 200: + logging.debug(f'Page response status code: {page_response.status_code}') + logging.debug(f'get_xml function is completed') + return page_response.text + else: + logging.debug(f'Unfortunately, no relevant page response from {self.source}') + logging.debug(f'get_xml function is completed') + return None + except: + logging.debug('Oops, unable to connect.') + print(f'No worries, will check again in 5 seconds.') + print(f'If there are no changes it will be checked {attempt} more {"time" if attempt == 1 else "times"}') + time.sleep(5) + attempt -= 1 + if attempt < 1: + print(f'{self.source} is can\'t be connected. Check the url address or internet connection.') + logging.debug('Program has stopped to working: Connection Error') + return None + + def parse_link_page(self, description_link): + """ + Function searches by a specific news original page and finds description from it + :param description_link + :returns description if found + """ + logging.debug('parse_link_page function is activated') + page_html = self.get_xml() + if page_html is None: + return 'No description' + logging.debug(f'Activating BeautifulSoup for: {description_link}') + soup = BeautifulSoup(page_html, 'lxml') + all_p = soup.find_all('p') + description = '' + for p in all_p[:3]: + if p.text.split() != '\n': + description += p.text + logging.debug('parse_link_page is completed') + return description + + def parse_xml(self, xml_text): + """ + Function parses the xml page and separates every item with its details, exits if it is invalid RSS page + :param xml_text + :returns page_title, all_items + """ + logging.debug('get_xml function is activated') + logging.debug('Activating BeautifulSoup') + soup = BeautifulSoup(xml_text, 'xml') + if not soup.find('channel'): + print('Invalid RSS page') + exit() + else: + try: + logging.debug('Looking for page "title" tag') + page_title = soup.find('title').text + except: + logging.debug('"title" tag is unavailable') + page_title = 'No page title' + all_items = [] + logging.debug('Collecting and analyzing items') + xml_items = soup.find_all('item') + if self.limit < 0: + self.limit = len(xml_items) + for item in xml_items[:self.limit]: + logging.debug('Generating each item details') + xml_item = {"title": item.find("title").text.lstrip(), "link": item.find("link").text, + "pubDate": item.find("pubDate").string} + try: + try: + xml_item["image"] = item.find('enclosure')["url"] + except: + xml_item["image"] = item.find('media:content')["url"] + except: + xml_item["image"] = 'No image found' + + try: + xml_item["description"] = item.find("description").text + except: + logging.debug('Evoking parse_link_page function') + description = self.parse_link_page(xml_item["link"]) + if description is not None: + xml_item["description"] = description + else: + xml_item["description"] = "No description" + + logging.debug(f'Saving {xml_item} to "all_items" dict') + all_items.append(xml_item) + + logging.debug('parse_xml function is completed') + return page_title, all_items + + def cashing_news(self, page_title, page_items): + """ + Function receives page_title, page_items and caches them in cached_news.txt file + :params page_title, page_items + :returns None + """ + logging.debug('cashing_news function is activated') + if not self.source.endswith('/'): + self.source += '/' + + json_content = '' + if os.path.exists(self.cashed_news): + logging.debug(f'Generating "{self.cashed_news}" file for news caching') + with open(f'{self.cashed_news}', 'r', encoding='utf-8') as json_file: + json_content = json.loads(json_file.read()) + + with open(self.cashed_news, 'w', encoding='utf-8') as file: + cached_items = [] if json_content == '' else json_content + news_dict = dict() + news_dict["caching_date"] = str(datetime.datetime.now()).replace('-', '/') + news_dict["news_feed"] = page_title + news_dict["news_items"] = [] + for item in page_items: + unique_news = {} + item_pub_date = dateparser.parse(item['pubDate']) + item_normal_date = item_pub_date.strftime('%Y%m%d') + if str(item) not in str(json_content): + logging.debug(f'New item found! Adding it to "{self.cashed_news}"') + unique_news["date"] = item_normal_date + unique_news["link"] = self.source + unique_news["item_details"] = item + news_dict["news_items"].append(unique_news) + else: + logging.debug(f'Item exists in "{self.cashed_news}". No need to add') + + cached_items.append(news_dict) + json.dump(cached_items, file, ensure_ascii=False, indent=4) + + def reading_cache(self): + """ + Function reads news for the specified date or/and resource from cached_news.txt file + :returns list with items (if there is a need to convert into html or pdf) + """ + logging.debug('"reading_cache" function is activated') + no_data = True + if self.source is not None and not self.source.endswith('/'): + self.source += '/' + try: + with open(f'{self.cashed_news}', 'r', encoding='utf-8') as file: + logging.debug(f'Open file "{self.cashed_news}". Params: {self.date}, {self.source}, {self.limit}') + for_news = f'For source: {self.source}' if self.source else '' + print('Reading cache file...') + print(for_news) + json_content = json.loads(file.read()) + limit = 0 + i = 0 + items_to_convert = [] + for fetched_news in json_content: + for sep_news in fetched_news['news_items']: + source = True if self.source is None else sep_news['link'] == self.source + if int(sep_news['date']) >= int(self.date) and source: + item = sep_news['item_details'] + items_to_convert.append(item) + print('*'*100) + logging.debug(f'Printing #{i + 1} element:') + print(f'Number {i + 1}') + print(f'\tTitle: {item["title"]}') + print(f'\tDate: {item["pubDate"]}') + print(f'\tLink: {item["link"]}') + print(f'\tDescription: {item["description"]}') + print(f'\tImage: {item["image"]}') + logging.debug(f'End Printing number {i + 1} element:') + print('*'*100) + limit += 1 + i += 1 + no_data = False + if limit == self.limit: + break + if no_data: + logging.debug(f'Nothing found found for date: {self.date}') + print(f'Error! Nothing found for date: {self.date}') + return items_to_convert + except FileNotFoundError as e: + logging.debug(f'{e} nothing is cached yet.') + print(f'Use rss-reader without --date argument at first then with --date, so there will ba cached news.') + + @staticmethod + def json_mode(items, title=''): + """ + This functions prints news in json format + """ + logging.debug('"json_monde" function is activated') + print(title, '\n', json.dumps(items, indent=4, ensure_ascii=False, sort_keys=False)) + + @staticmethod + def items_in_terminal(title, items): + """ + This function receives title for xml page its items and print in terminal (shell) + :params title, items + :returns None + """ + logging.debug('"items_in_terminal" function is activated') + print(f'\nFeed: {title}\n') + for i, item in enumerate(items): + print('*' * 100) + logging.debug(f'Printing #{i + 1} element:') + print(f'Number {i + 1}') + print(f'\tTitle: {item["title"]}') + print(f'\tDate: {item["pubDate"]}') + print(f'\tLink: {item["link"]}') + print(f'\tDescription: {item["description"]}') + print(f'\tImage: {item["image"]}') + logging.debug(f'End Printing number {i + 1} element:') + print('*' * 100) + logging.debug('"items_in_terminal" function is completed') + + def html_or_pdf(self, content): + """ + This function forwards completed html template to html creating function, to pdf creating function or to both + :param content + :returns None + """ + logging.debug(f'to_html = {self.to_html} , to_pdf = {self.to_pdf}') + converter = Converter() + converter.make_html_template(content) + if self.to_html is not None: + logging.debug(f'Converting to_html = {self.to_html}') + path_to_save = self.to_html[0] if self.to_html else 'html_files' + converter.convert_to_html(path_to_save) + if self.to_pdf is not None: + logging.debug(f'Converting to_pdf = {self.to_pdf}') + path_to_save = self.to_pdf[0] if self.to_pdf else 'pdf_files' + converter.convert_to_pdf(path_to_save) + + def main(self): + """ + This method is for analyzing arguments from rss_argparser. + Evokes the corresponding functions based on arguments' requirements. + """ + self.verbose_mode() + logging.debug('Evoking get_xml function') + xml_text = self.get_xml() if self.source else None + + if xml_text is not None and self.date is None: + logging.debug('Evoking parse_xml function') + title, items = self.parse_xml(xml_text) + if not items: + logging.debug('No item found') + print(f"{self.source} doesn't have any RSS items, or --limit is set up as 0") + elif items: + logging.debug(f'Start caching to "{self.cashed_news}"') + self.cashing_news(title, items) + + if self.to_html is not None or self.to_pdf is not None: + self.html_or_pdf(items) + + if self.json: + logging.debug('Activating printing items in JSON format') + self.json_mode(items, title) + else: + logging.debug('Activating printing items in terminal') + self.items_in_terminal(title, items) + + elif self.date is not None: + cached_news_dated = self.reading_cache() + if self.to_html is not None or self.to_pdf is not None: + self.html_or_pdf(cached_news_dated) + + elif self.json: + self.json_mode(cached_news_dated) + + else: + self.reading_cache() + + elif self.date is None: + logging.debug(f'{self.source} is empty.') + print(f'Invalid RSS link: {self.source}, please, provide valid RSS link.') + print(f'Thank you for using our RSS reader. Program is done time spent: {time.time() - self.start}s.') + + +def main(): + Reader().main() + + +if __name__ == '__main__': + main() + + + diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__init__.py b/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/__init__.cpython-38.pyc b/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 00000000..c8382875 Binary files /dev/null and b/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/__init__.cpython-38.pyc differ diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/__init__.cpython-39.pyc b/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 00000000..43688cb1 Binary files /dev/null and b/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/__init__.cpython-39.pyc differ diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/rss_save_into.cpython-38.pyc b/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/rss_save_into.cpython-38.pyc new file mode 100644 index 00000000..1c11adf8 Binary files /dev/null and b/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/rss_save_into.cpython-38.pyc differ diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/rss_save_into.cpython-39.pyc b/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/rss_save_into.cpython-39.pyc new file mode 100644 index 00000000..94ed660e Binary files /dev/null and b/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/__pycache__/rss_save_into.cpython-39.pyc differ diff --git a/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/rss_save_into.py b/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/rss_save_into.py new file mode 100644 index 00000000..f2b35767 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/rss_reader/rss_save_into/rss_save_into.py @@ -0,0 +1,150 @@ +#!/usr/bin/env python3 +from xhtml2pdf import pisa +import logging +import datetime +import os + + +class Converter: + """ + A class to convert news into html, pdf formats + + ... + + Attributes + ---------- + template: str + Keeps html template + + Methods + ------- + make_html_template(): + Receives news as items and creates a html template based on them + + create_path(): + Receives file extension and file path. Currently it can only save html and pdf files + """ + + def __init__(self): + self.template = '' + + def make_html_template(self, items): + """ + This function receives news as items from news feed creates a html template and styles it. + :param items + :returns ready template + """ + logging.debug('"make_html_template" function is activated') + main_html = '' + style = """ + + +""" + for item in items: + open_div = '
' + title = f'

{item["title"]}

' + link = f'{item["link"]}' + pubdate = f'

{item["pubDate"]}

' + description = f'

{item["description"]}

' + image = item['image'] + if image == 'No image found': + image = f'

"NO IMAGE"

' + else: + image = f'

' + close_div = '
' + + pre_html = f""" + {open_div} + {title} + {link} + {pubdate} + {description} + {image} + {close_div}""" + main_html += pre_html + self.template = f'\n\n{style}\n\n' + main_html + '\n\n' + return self.template + + @staticmethod + def create_path(file_path, extension): + """ + This function receives file extension and file path. It can save html and pdf files in provided path. + There are default folder html_files for html and pdf_files for pdf. These folder are saved in rss_folder. + If optional --path argument receives path file will be saved there. + :params file_path, extension + :returns path_to_save, final_path + """ + logging.debug('"create_path" function is activated') + default_file_name = str(datetime.datetime.now()).replace(':', '_') + path_to_save = os.path.join(file_path, default_file_name + extension) + if not os.path.exists(file_path): + os.makedirs(file_path) + + final_path = os.path.abspath(path_to_save) + + return path_to_save, final_path + + def convert_to_html(self, file_path): + """ + This function generates an html real file and prints where it is saved + :param file_path + :returns None + """ + logging.debug('"convert_to_html" function is activated') + path_to_save, final_path = self.create_path(file_path, '.html') + + with open(path_to_save, 'w+', encoding='utf-8') as file: + file.write(self.template) + + print(f'Address for the html file: {final_path}') + + def convert_to_pdf(self, file_path): + """ + This function generates an pdf real file and prints where it is saved + :param file_path + :returns None + """ + logging.debug('"convert_to_pdf" function is activated') + path_to_save, final_path = self.create_path(file_path, '.pdf') + + with open(path_to_save, "w+b") as pdf_file: + pisa.CreatePDF(self.template, dest=pdf_file, encoding='UTF-8') + + print(f'Address for the pdf file: {final_path}') diff --git a/LianaKalpakchyan/rss_reader/rss_reader/test_rss_reader.py b/LianaKalpakchyan/rss_reader/rss_reader/test_rss_reader.py new file mode 100644 index 00000000..cff43474 --- /dev/null +++ b/LianaKalpakchyan/rss_reader/rss_reader/test_rss_reader.py @@ -0,0 +1,1166 @@ +import unittest +from rss_reader import Reader + +reader = Reader() +xml_content = """ + + +NYT > Top Stories +https://www.nytimes.com + + +en-us +Copyright 2022 The New York Times Company +Thu, 30 Jun 2022 08:06:15 +0000 +Thu, 30 Jun 2022 06:34:56 +0000 + +NYT > Top Stories +https://static01.nyt.com/images/misc/NYT_logo_rss_250x40.png +https://www.nytimes.com + + +In States Banning Abortion, a Growing Rift Over Enforcement +https://www.nytimes.com/2022/06/29/us/abortion-enforcement-prosecutors.html +https://www.nytimes.com/2022/06/29/us/abortion-enforcement-prosecutors.html + +A reluctance by some liberal district attorneys to bring criminal charges against abortion providers is already complicating the legal landscape in some states. +J. David Goodman and Jack Healy +Wed, 29 Jun 2022 21:41:55 +0000 +Abortion +Law and Legislation +District Attorneys +Texas + +Callaghan O'Hare/Reuters +Abortion rights protesters outside a courthouse in Houston. Some Democratic prosecutors are uneasy about declaring their districts safe havens for abortions, worried doing so could be used as grounds for their own removal by Republican leaders. + + +First Amendment Confrontation May Loom in Post-Roe Fight +https://www.nytimes.com/2022/06/29/business/media/first-amendment-roe-abortion-rights.html +https://www.nytimes.com/2022/06/29/business/media/first-amendment-roe-abortion-rights.html + +Without a federal right to abortion, questions about how states can regulate speech about it suddenly become much murkier. +Jeremy W. Peters +Wed, 29 Jun 2022 20:40:40 +0000 +Women and Girls +Law and Legislation +Dobbs v Jackson Women's Health Organization (Supreme Court Decision) +Freedom of Speech and Expression +Abortion + +Shuran Huang for The New York Times +A demonstrator outside the Supreme Court on Sunday. + + +For Many Women, Roe Was About More Than Abortion. It Was About Freedom. +https://www.nytimes.com/2022/06/29/us/women-abortion-roe-wade.html +https://www.nytimes.com/2022/06/29/us/women-abortion-roe-wade.html + +After the reversal of Roe v. Wade, some women are reconsidering their plans, including where they live, and wondering how best to channel their anger. +Julie Bosman +Wed, 29 Jun 2022 07:00:13 +0000 +Abortion +Dobbs v Jackson Women's Health Organization (Supreme Court Decision) +Roe v Wade (Supreme Court Decision) +Women and Girls +Women's Rights +States (US) +Supreme Court (US) +Decisions and Verdicts +United States + +Nina Robinson for The New York Times +Yolanda Williams plans to live in rural Georgia with her daughter. She has considered whether they should live in a state where abortion could soon be severely restricted, but is unsure which corner of the country could be better. + + +How Zeldin’s Anti-Abortion Stance May Affect the N.Y. Governor’s Race +https://www.nytimes.com/2022/06/29/nyregion/abortion-lee-zeldin-governor.html +https://www.nytimes.com/2022/06/29/nyregion/abortion-lee-zeldin-governor.html + +Representative Lee Zeldin, the Republican candidate for governor, said the decision to overturn Roe v. Wade was a victory for family, life and the Constitution. +Nicholas Fandos +Wed, 29 Jun 2022 21:21:24 +0000 +Abortion +Dobbs v Jackson Women's Health Organization (Supreme Court Decision) +Politics and Government +Zeldin, Lee M +Hochul, Kathleen C +Elections, Governors +New York State + +Andrew Seng for The New York Times, Desiree Rios/The New York Times +Gov. Kathy Hochul, right, is portraying her opponent, Lee Zeldin, as a Republican with right-wing views such as opposing abortion. + + +Jan. 6 Committee Subpoenas Pat Cipollone, Trump’s White House Counsel +https://www.nytimes.com/2022/06/29/us/politics/pat-cipollone-subpoena-jan-6.html +https://www.nytimes.com/2022/06/29/us/politics/pat-cipollone-subpoena-jan-6.html + +Mr. Cipollone, who repeatedly fought extreme plans to overturn the election, had resisted publicly testifying to the panel. +Luke Broadwater and Maggie Haberman +Thu, 30 Jun 2022 02:56:58 +0000 +United States Politics and Government +Presidential Election of 2020 +Storming of the US Capitol (Jan, 2021) +House Select Committee to Investigate the January 6th Attack +Cipollone, Pat A +Trump, Donald J + +Erin Schaff/The New York Times +The House committee investigating the Jan. 6 attack said it needed to hear from Pat A. Cipollone “on the record, as other former White House counsels have done in other congressional investigations.” + + +Hutchinson Testimony Exposes Tensions Between Parallel Jan. 6 Inquiries +https://www.nytimes.com/2022/06/29/us/politics/jan-6-committee-justice-department-trump.html +https://www.nytimes.com/2022/06/29/us/politics/jan-6-committee-justice-department-trump.html + +That the House panel did not provide the Justice Department with transcripts of Cassidy Hutchinson’s interviews speaks to the panel’s reluctance to turn over evidence. +Glenn Thrush, Luke Broadwater and Michael S. Schmidt +Thu, 30 Jun 2022 00:14:33 +0000 +Storming of the US Capitol (Jan, 2021) +United States Politics and Government +Democratic Party +House of Representatives +House Select Committee to Investigate the January 6th Attack +Justice Department +Republican Party + +Doug Mills/The New York Times +Cassidy Hutchinson’s testimony sent shock waves through Washington, including the Justice Department, on Tuesday. + + +A More Muscular NATO Emerges as West Confronts Russia and China +https://www.nytimes.com/2022/06/29/world/europe/nato-expansion-ukraine-war.html +https://www.nytimes.com/2022/06/29/world/europe/nato-expansion-ukraine-war.html + +It is a fundamental shift for a military alliance born in the Cold War and scrambling to respond to a newly reshaped world. +Steven Erlanger and Michael D. Shear +Thu, 30 Jun 2022 03:20:40 +0000 +North Atlantic Treaty Organization +Russia +China +Russian Invasion of Ukraine (2022) +Biden, Joseph R Jr +Putin, Vladimir V +Prisoners of War +United States International Relations +International Relations + +Kenny Holston for The New York Times +President Biden with the NATO secretary-general, Jens Stoltenberg, left, and Prime Minister Pedro Sánchez of Spain at the NATO summit in Madrid on Wednesday. + + +Patient and Confident, Putin Shifts Out of Wartime Crisis Mode +https://www.nytimes.com/2022/06/30/world/europe/putin-russia-nato-ukraine.html +https://www.nytimes.com/2022/06/30/world/europe/putin-russia-nato-ukraine.html + +Cloistered and spouting grievances at the start of the war on Ukraine, the Russian leader now appears publicly, projecting the aura of a calm, paternalistic leader shielding his people from the dangers of the world. +Anton Troianovski +Thu, 30 Jun 2022 04:01:09 +0000 +Russian Invasion of Ukraine (2022) +Politics and Government +United States International Relations +Embargoes and Sanctions +European Union +North Atlantic Treaty Organization +Peter the Great (1672-1725) +Putin, Vladimir V +Caspian Sea +Russia +Ukraine + +Getty Images +President Vladimir Putin of Russia arriving in Ashgabat, the capital of Turkmenistan, on Wednesday to attend the Caspian Summit. + + +McKinsey Guided Companies at the Center of the Opioid Crisis +https://www.nytimes.com/2022/06/29/business/mckinsey-opioid-crisis-opana.html +https://www.nytimes.com/2022/06/29/business/mckinsey-opioid-crisis-opana.html + +The consulting firm offered clients “in-depth experience in narcotics,” from poppy fields to pills more powerful than Purdue’s OxyContin. +Chris Hamby and Michael Forsythe +Wed, 29 Jun 2022 23:24:22 +0000 +Consultants +Opioids and Opiates +Pain-Relieving Drugs +Drugs (Pharmaceuticals) +Drug Abuse and Traffic +OxyContin (Drug) +Poppies +Acquired Immune Deficiency Syndrome +Centers for Disease Control and Prevention +Drug Enforcement Administration +Food and Drug Administration +Johnson & Johnson +McKinsey & Co +Purdue Pharma +Appalachian Region +United States +Endo +Opana + +Mark Weaver + + +Truck Carrying Dead Migrants Passed Through U.S. Checkpoint +https://www.nytimes.com/2022/06/29/us/texas-migrants-deaths-truck.html +https://www.nytimes.com/2022/06/29/us/texas-migrants-deaths-truck.html + +Border Patrol officials say truck traffic is too voluminous to check every vehicle at the dozens of immigration checkpoints on roadways near the border. +James Dobbins, J. David Goodman and Miriam Jordan +Thu, 30 Jun 2022 03:24:56 +0000 +Illegal Immigration +Immigration and Emigration +Search and Seizure +Trucks and Trucking +Border Patrol (US) +Abbott, Gregory W (1957- ) +Texas + +Lisa Krantz for The New York Times +Officials said that at least 53 people died from extreme heat inside a tractor-trailer that was abandoned in San Antonio, including migrants from Mexico, Honduras, Guatemala and El Salvador. + + +At Wimbledon, Maxime Cressy’s Throwback Style Helps Him Charge Forward +https://www.nytimes.com/2022/06/29/sports/tennis/wimbledon-cressy.html +https://www.nytimes.com/2022/06/29/sports/tennis/wimbledon-cressy.html + +We’re well past the glory days of the serve-and-volley style that took John McEnroe, Martina Navratilova and Pete Sampras to the Hall of Fame. Maxime Cressy is on a one-man revival mission. +Matthew Futterman +Wed, 29 Jun 2022 20:50:23 +0000 +Wimbledon Tennis Tournament +Cressy, Maxime + +Sebastien Bozon/Agence France-Presse — Getty Images +For Maxime Cressy, playing at the net is a central part of his tennis strategy. + + +This Is What a Post-Roe Abortion Looks Like +https://www.nytimes.com/2022/06/29/opinion/abortion-pill-roe-wade.html +https://www.nytimes.com/2022/06/29/opinion/abortion-pill-roe-wade.html + +Self-managed abortion is not a substitute for having full reproductive rights. But it’s one of the best tools we have right now. +Ora DeKornfeld, Emily Holzknecht and Jonah M. Kessel +Wed, 29 Jun 2022 09:00:12 +0000 +Abortion +Law and Legislation +Texas +Roe v Wade (Supreme Court Decision) +Mifeprex (RU-486) +your-feed-opinionvideo + + +Women Will Save Us +https://www.nytimes.com/2022/06/29/opinion/women-midterm-elections.html +https://www.nytimes.com/2022/06/29/opinion/women-midterm-elections.html + +In the face of recent threats to the country, women have stepped up more than men. +Charles M. Blow +Thu, 30 Jun 2022 00:55:06 +0000 +Project Democracy +Democratic Party +Women and Girls +Storming of the US Capitol (Jan, 2021) +Dobbs v Jackson Women's Health Organization (Supreme Court Decision) +United States Politics and Government +Supreme Court (US) +Midterm Elections (2022) + +Kendrick Brinson for The New York Times + + +Cassidy Hutchinson Changes Everything +https://www.nytimes.com/2022/06/29/opinion/cassidy-hutchinson-january-6-committee.html +https://www.nytimes.com/2022/06/29/opinion/cassidy-hutchinson-january-6-committee.html + +Her testimony delivered shocking and consequential revelations, but they have hardly been the only ones. +Norman Eisen +Thu, 30 Jun 2022 00:32:34 +0000 +Storming of the US Capitol (Jan, 2021) +Fourteenth Amendment (US Constitution) +Watergate Affair +House of Representatives +House Select Committee to Investigate the January 6th Attack +Secret Service +Cipollone, Pat A +Meadows, Mark R (1959- ) +Pence, Mike +Trump, Donald J +United States +Georgia + +Doug Mills/The New York Times + + +The Supreme Court Takes Us Back … Way Back +https://www.nytimes.com/2022/06/29/opinion/roe-dobbs-abortion-supreme-court.html +https://www.nytimes.com/2022/06/29/opinion/roe-dobbs-abortion-supreme-court.html + +Think about what the world was really like before Roe. +Gail Collins +Thu, 30 Jun 2022 00:13:54 +0000 +Dobbs v Jackson Women's Health Organization (Supreme Court Decision) +Women and Girls +Birth Control and Family Planning +Abortion +Pregnancy and Childbirth +Supreme Court (US) +Stanton, Elizabeth Cady +Thomas, Clarence +Anthony, Susan B +Vaughn, Hester +Finkbine, Sherri + +Mark Peterson/Redux for The New York Times + + +‘This Really Changes Things’: Three Opinion Writers on Cassidy Hutchinson’s Jan. 6 Testimony +https://www.nytimes.com/2022/06/29/opinion/jan-6-hearings-cassidy-hutchinson.html +https://www.nytimes.com/2022/06/29/opinion/jan-6-hearings-cassidy-hutchinson.html + +Bret Stephens and Michelle Cottle answer the question: Should Trump be indicted? +‘The Argument’ +Wed, 29 Jun 2022 19:16:40 +0000 +audio-neutral-informative +Storming of the US Capitol (Jan, 2021) +United States Politics and Government +House Select Committee to Investigate the January 6th Attack +Hutchinson, Cassidy +Trump, Donald J +Meadows, Mark R (1959- ) +Stephens, Bret (1973- ) +Cottle, Michelle +Republican Party + +Brandon Bell/Getty Images + + +America’s Death Penalty Sentences Are Slowly Grinding to a Halt +https://www.nytimes.com/2022/06/29/opinion/death-penalty-executions.html +https://www.nytimes.com/2022/06/29/opinion/death-penalty-executions.html + +The numbers of executions and death sentences are falling. +Maurice Chammah +Wed, 29 Jun 2022 09:00:23 +0000 +Capital Punishment +Suits and Litigation (Civil) +State Legislatures +Polls and Public Opinion +Sentences (Criminal) +Law and Legislation +Minorities +Civil Rights and Liberties +False Arrests, Convictions and Imprisonments +NAACP Legal Defense Fund +Supreme Court (US) +United States + +George Rinhart/Corbis, via Getty Images + + +Democrats Are Having a Purity-Test Problem at Exactly the Wrong Time +https://www.nytimes.com/2022/06/29/opinion/progressive-nonprofits-philanthropy.html +https://www.nytimes.com/2022/06/29/opinion/progressive-nonprofits-philanthropy.html + +“It has become too easy for people to conflate disagreements about issues with matters of identity,” one nonprofit official says. +Thomas B. Edsall +Thu, 30 Jun 2022 00:30:56 +0000 +Race and Ethnicity +Black Lives Matter Movement +George Floyd Protests (2020) +Philanthropy +Minorities +Whites +Appointments and Executive Changes +Nonprofit Organizations +Democratic Party + +Paul LInse/Getty Images + + +Is the Supreme Court Facing a Legitimacy Crisis? +https://www.nytimes.com/2022/06/29/opinion/supreme-court-legitimacy-crisis.html +https://www.nytimes.com/2022/06/29/opinion/supreme-court-legitimacy-crisis.html + +Warnings of the court’s declining credibility are hardly new, but after Roe’s fall, they’ve intensified and moved well beyond the bench. +Spencer Bokat-Lindell +Wed, 29 Jun 2022 22:00:04 +0000 +debatable +Abortion +Roe v Wade (Supreme Court Decision) +Supreme Court (US) +Thomas, Clarence +Bork, Robert H +Same-Sex Marriage, Civil Unions and Domestic Partnerships +Sotomayor, Sonia +Alito, Samuel A Jr +Kagan, Elena +Breyer, Stephen G +Rehnquist, William H + +Illustration by The New York Times; photographs by Chip Somodevilla, Tasos Katopodis, and Samuel Corum, via Getty Images + + +Modern Love Podcast: Left to Be Found +https://www.nytimes.com/2022/06/29/podcasts/modern-love-adoption-stories.html +https://www.nytimes.com/2022/06/29/podcasts/modern-love-adoption-stories.html + +Two women share their adoption stories — one a daughter, and the other a mother. +Wed, 29 Jun 2022 20:00:08 +0000 +Women and Girls +Adoptions +Hong Kong +Love (Emotion) +Babies and Infants + +Brian Rea + + +7 Tips for House Plant Care +https://www.nytimes.com/2022/06/23/well/live/plant-care-tips.html +https://www.nytimes.com/2022/06/23/well/live/plant-care-tips.html + +If you are known to turn a lush house plant into a rotting carcass, here are a few expert tips for making greenery thrive. +Melinda Wenner Moyer +Mon, 27 Jun 2022 20:48:08 +0000 +Content Type: Service +Weeds +Gardens and Gardening +Flowers and Plants +Summer (Season) + +Guillem Casasus + + +Sensing the World Anew Through Other Species +https://www.nytimes.com/2022/06/24/books/review/podcast-ed-yong-immense-world-terry-alford-houses-of-their-dead.html +https://www.nytimes.com/2022/06/24/books/review/podcast-ed-yong-immense-world-terry-alford-houses-of-their-dead.html + +Ed Yong talks about “An Immense World,” and Terry Alford discusses “In the Houses of Their Dead.” +Sat, 25 Jun 2022 01:14:36 +0000 +Books and Literature +An Immense World: How Animal Senses Reveal the Hidden Realms Around Us (Book) +Yong, Ed (1981- ) +Alford, Terry +In the Houses of Their Dead: The Lincolns, the Booths, and the Spirits (Book) +Animal Cognition +Occult Sciences +Lincoln, Abraham +Booth, John Wilkes + + + +Our Data Is a Curse, With or Without Roe +https://www.nytimes.com/2022/06/29/technology/abortion-data-privacy.html +https://www.nytimes.com/2022/06/29/technology/abortion-data-privacy.html + +There is so much digital information about us out there that we can’t possibly control it all. +Shira Ovide +Wed, 29 Jun 2022 17:31:36 +0000 +internal-sub-only-nl +Data-Mining and Database Marketing +Law and Legislation +Abortion +Privacy + + +Woman Is Fatally Shot While Pushing Baby in Stroller on Upper East Side +https://www.nytimes.com/2022/06/29/nyregion/upper-east-side-woman-shot-nyc.html +https://www.nytimes.com/2022/06/29/nyregion/upper-east-side-woman-shot-nyc.html + +The shooting occurred near the intersection of Lexington Avenue and 95th Street, the police said. The 3-month-old child was unhurt. +Ed Shanahan +Thu, 30 Jun 2022 05:22:31 +0000 + +Dakota Santiago for The New York Times +Investigators at the site of the fatal shooting of a 20-year-old woman on the Upper East Side. + + +Liz Cheney Calls Trump ‘a Domestic Threat That We Have Never Faced Before’ +https://www.nytimes.com/2022/06/29/us/politics/liz-cheney-speech-trump.html +https://www.nytimes.com/2022/06/29/us/politics/liz-cheney-speech-trump.html + +In a forceful speech, the congresswoman also denounced Republican leaders who had “made themselves willing hostages to this dangerous and irrational man.” +Maggie Haberman +Thu, 30 Jun 2022 03:59:44 +0000 +Cheney, Liz +Trump, Donald J +House Select Committee to Investigate the January 6th Attack +Wyoming +Elections, House of Representatives +Republican Party +Conservatism (US Politics) + +Kyle Grillot for The New York Times +Representative Liz Cheney's address at the Ronald Reagan Presidential Library was met with a standing ovation. She is facing a tough Republican primary battle in Wyoming. + + +R. Kelly, R&B Star Who Long Evaded Justice, Is Sentenced to 30 Years +https://www.nytimes.com/2022/06/29/nyregion/r-kelly-racketeering-sex-abuse.html +https://www.nytimes.com/2022/06/29/nyregion/r-kelly-racketeering-sex-abuse.html + +The prison term marks the culmination of Mr. Kelly’s stunning downfall. In court, the women he victimized gave wrenching accounts. “I don’t know if I’ll ever be whole,” one said. +Troy Closson +Wed, 29 Jun 2022 22:40:24 +0000 +Kelly, R +Sex Crimes +Child Abuse and Neglect +Racketeering and Racketeers +Human Trafficking + +Matt Marton/Associated Press +The sentencing in Brooklyn marks the culmination of a stunning downfall for R. Kelly, from a superstar hitmaker to a shunned artist whose legacy has become inextricable from his abuses. + + +A Young Black Man is Paralyzed and New Haven Officers are Investigated +https://www.nytimes.com/2022/06/29/nyregion/randy-cox-paralyzed-new-haven-police.html +https://www.nytimes.com/2022/06/29/nyregion/randy-cox-paralyzed-new-haven-police.html + +Randy Cox, 36, was being transported in a police van when it came to a sudden stop on June 19. He is now in the hospital, barely able to move. +Ali Watkins +Thu, 30 Jun 2022 02:23:47 +0000 +Police Brutality, Misconduct and Shootings +Police Department (New Haven, Conn) +Gray, Freddie (1989-2015) +New Haven (Conn) + + +Processed Meat and Health Risks: What to Know +https://www.nytimes.com/2022/06/29/well/eat/processed-meats.html +https://www.nytimes.com/2022/06/29/well/eat/processed-meats.html + +Here’s what the experts say. +Sophie Egan +Wed, 29 Jun 2022 13:33:42 +0000 +Meat +Cooking and Cookbooks +Content Type: Service +Hazardous and Toxic Substances +Diet and Nutrition +Colon and Colorectal Cancer +Cancer +Diabetes +Alzheimer's Disease +Salt +Hot Dogs and Frankfurters +Blood Pressure +Oils and Fats + +Aileen Son for The New York Times + + +The Foods That Keep You Hydrated +https://www.nytimes.com/2022/06/28/well/hydrating-foods.html +https://www.nytimes.com/2022/06/28/well/hydrating-foods.html + +Water doesn’t have to come in eight 8-ounce glasses daily. Fresh fruits and vegetables, and various beverages, are viable sources of hydration. +Hannah Seo +Tue, 28 Jun 2022 14:05:59 +0000 +Dehydration +Heat and Heat Waves + +Suzanne Saroff for The New York Times + + +Do Prepackaged Salad Greens Lose Their Nutrients? +https://www.nytimes.com/2017/11/03/well/eat/do-prepackaged-salad-greens-lose-their-nutrients.html +https://www.nytimes.com/2017/11/03/well/eat/do-prepackaged-salad-greens-lose-their-nutrients.html + +Some greens lose more nutrients than others with washing and storage. +Roni Caryn Rabin +Tue, 13 Jul 2021 12:47:07 +0000 +Vitamins +Salads +Vitamin C +Lettuce +Spinach + +Getty Images + + +Can Technology Help Us Eat Better? +https://www.nytimes.com/2021/02/08/well/diet-glucose-monitor.html +https://www.nytimes.com/2021/02/08/well/diet-glucose-monitor.html + +A new crop of digital health companies is using blood glucose monitors to transform the way we eat. +Anahad O’Connor +Tue, 21 Dec 2021 14:04:39 +0000 +Diet and Nutrition +Sugar +Wearable Computing +Diabetes +Heart + +Leann Johnson + + +Is Alkaline Water Really Better for You? +https://www.nytimes.com/2018/04/27/well/eat/alkaline-water-health-benefits.html +https://www.nytimes.com/2018/04/27/well/eat/alkaline-water-health-benefits.html + +What’s behind the claims that alkaline water will “energize” and “detoxify” the body and lead to “superior hydration”? +Alice Callahan +Sat, 09 Jun 2018 00:27:38 +0000 +Water +Diet and Nutrition +Content Type: Service + +iStock + + +Artists Scrutinize Nazi Family Past of Julia Stoschek +https://www.nytimes.com/2022/06/29/arts/julia-stoschek-nazi-family-past.html +https://www.nytimes.com/2022/06/29/arts/julia-stoschek-nazi-family-past.html + +As word circulated of a link between Julia Stoschek’s fortune and forced labor in World War II, some began questioning the ethics of working with the billionaire art patron. +Thomas Rogers +Wed, 29 Jun 2022 18:42:33 +0000 +Collectors and Collections +Art +Holocaust and the Nazi Era +World War II (1939-45) +High Net Worth Individuals +Stoschek, Julia +Stoschek, Julia, Collection +Brose, Max (1884-1968) +Germany + +Gordon Welters for The New York Times +Julia Stoschek said she embraced any inspection of her family fortune. “It’s very important that the art scene, as has been the case recently, looks at where money is coming from,” she said. + + + +""" +xml_link = 'https://news.yahoo.com/rss/' +xml_items = [{ + 'description': 'A reluctance by some liberal district attorneys to bring criminal charges against abortion providers is already complicating the legal landscape in some states.', + 'image': 'https://static01.nyt.com/images/2022/06/29/us/29abortion-enforcement03/29abortion-enforcement03-moth.jpg', + 'link': 'https://www.nytimes.com/2022/06/29/us/abortion-enforcement-prosecutors.html', + 'pubDate': 'Wed, 29 Jun 2022 21:41:55 +0000', + 'title': 'In States Banning Abortion, a Growing Rift Over Enforcement'}] +xml_title = 'NYT > Top Stories' +news_valid_link = 'https://news.yahoo.com/spit-disrespect-arrive-wimbledon-tennis-220151441.html' +news_invalid_link = 'https://www.cnbc/world-top-news/' + + +class RssTest(unittest.TestCase): + def no_title_parse_xml_test(self): + self.assertEqual(reader.parse_xml(''), ('Invalid source, provide a new one', [])) + + def parse_xml_test(self): + print(reader.parse_xml(xml_content,)) + self.assertEqual(reader.parse_xml(xml_content,), + ('BuzzFeed News', """[{'title': 'She Was One Year Away From Going To College. Then The Taliban Banned Her From School.', 'link': 'https://www.buzzfeednews.co +m/article/syedzabiullah/afghanistan-taliban-girls-school-ban', 'pubDate': 'Mon, 13 Jun 2022 20:32:05 -0400', 'image': 'No image found', 'description': + '

The policy prohibiting girls from attending school after sixth grade contradicts the regime’s previous promises to loosen restrictions on educat +ion rights.


View Entire Post ›

'}, {'title': 'I, A Brit, Went To Tokyo, And Here Are 18 Things I Noticed That Are Pretty Effing Differ +ent From The UK', 'link': 'https://www.buzzfeed.com/sam_cleal/interesting-facts-japan-vs-uk', 'pubDate': 'Tue, 28 Jun 2022 00:52:02 -0400', 'image': ' +No image found', 'description': '

Yes, that is a rabbit on a lead.


View Entire Post ›

'}, {'title': 'Prince George, Princess Charlotte, And Prince Louis +Played A Starring Role In The Trooping The Colour', 'link': 'https://www.buzzfeednews.com/article/ellievhall/george-charlotte-louis-prince-princess-tr +ooping-colour', 'pubDate': 'Thu, 02 Jun 2022 21:25:05 -0400', 'image': 'No image found', 'description': '

The Cambridge children rode in a carriage + during the Queen\'s birthday parade as part of her Platinum Jubilee celebrations.


View Entire Post ›

'}, {'title': 'Ji +ll Biden Made A Surprise Visit To Ukraine To Meet With Their First Lady', 'link': 'https://www.buzzfeednews.com/article/davidmack/jill-biden-ukraine-f +irst-lady', 'pubDate': 'Mon, 09 May 2022 18:54:59 -0400', 'image': 'No image found', 'description': '

Olena Zelenska had not been seen in public si +nce Russia\'s invasion of Ukraine began in February.


View Entire Post ›

'}, {'title': 'The WHO Has Nearly Tripled Its Estimate Of The Pandemic’s +Death Toll', 'link': 'https://www.buzzfeednews.com/article/peteraldhous/who-covid-death-count-15-million', 'pubDate': 'Fri, 06 May 2022 11:25:05 -0400 +', 'image': 'No image found', 'description': '

The UN’s health agency has embraced statistical methods that put the true toll of the pandemic at ar +ound 15 million. Will it shock nations that are denying the severity of COVID-19 into action?


View Entire Post ›

'}, {'title': 'A Former Mar +ine Was Freed From “Wrongful Detention” In Russia, But Concerns Remain For Brittney Griner And Others', 'link': 'https://www.buzzfeednews.com/article/ +davidmack/brittney-griner-trevor-reed-paul-whelan-russia', 'pubDate': 'Thu, 28 Apr 2022 17:25:10 -0400', 'image': 'No image found', 'description': 'Trevor Reed\'s release from Russia highlighted concerns over the continued detention of WNBA star Brittney Griner and another former Marine, Paul Wh +elan.


View Entire Post ›

'}, {'title': 'The UK Was Warned This Counterterrorism Program Was A Disaster — But Rolled It Out Anyw +ay', 'link': 'https://www.buzzfeednews.com/article/richholmes/uk-manchester-bombing-counterterrorism-failures', 'pubDate': 'Wed, 13 Apr 2022 13:49:26 +-0400', 'image': 'No image found', 'description': '

Revealed: the inside story of how the British government rolled out a dangerously flawed intell +igence-sharing system right as the UK suffered one of its deadliest years from terrorism.


View Entire Post ›

'}, {'title': 'W +orldcoin Promised Free Crypto If They Scanned Their Eyeballs With “The Orb.” Now They Feel Robbed.', 'link': 'https://www.buzzfeednews.com/article/ric +hardnieva/worldcoin-crypto-eyeball-scanning-orb-problems', 'pubDate': 'Tue, 26 Apr 2022 17:44:33 -0400', 'image': 'No image found', 'description': 'The Sam Altman–founded company Worldcoin says it aims to alleviate global poverty, but so far it has angered the very people it claims to be helping +.


View Entire Post ›

'}, {'title': "Ukraine's President Described Nightmarish War Crimes By Russian Forces In Bucha", 'link +': 'https://www.buzzfeednews.com/article/davidmack/ukraine-bucha-zelensky-united-nations', 'pubDate': 'Tue, 05 Apr 2022 18:23:37 -0400', 'image': 'No +image found', 'description': '

President Volodymyr Zelensky used a rare address to the United Nations to describe horrific scenes of death in his c +ountry — and to criticize the Security Council as essentially useless.


View Entire Post ›

'}, {'title': "It's Cherry Blossom Season And T +he Photos Are Gorgeous", 'link': 'https://www.buzzfeednews.com/article/piapeterson/cherry-blossom-season-photos', 'pubDate': 'Mon, 04 Apr 2022 16:33:4 +2 -0400', 'image': 'No image found', 'description': '

How did we get so lucky to live in a world with flowers this pink.


View Entire Post ›

'}, {'title': '“It’s Now Or Never”: The Next Three Ye +ars Are Crucial To Preventing The Worst Impacts Of Climate Change', 'link': 'https://www.buzzfeednews.com/article/zahrahirji/climate-change-report-war +ning-ipcc', 'pubDate': 'Mon, 04 Apr 2022 17:13:59 -0400', 'image': 'No image found', 'description': '

"We are on a fast track to climate disaster," + United Nations Secretary-General António Guterres said.


View Entire Post ›

'}, {'title': 'Russia Has Banned Facebook And Instagram After La +beling Meta\'s Activities “Extremist"', 'link': 'https://www.buzzfeednews.com/article/christopherm51/russia-facebook-instagram-ban-extremist-organizat +ion', 'pubDate': 'Tue, 22 Mar 2022 22:54:46 -0400', 'image': 'No image found', 'description': '

Individuals won’t be held liable for using the two +social media networks, but paying for ads can be regarded as financing an “extremist” group.


View Entire Post ›

'}, { +'title': "Brittney Griner's Detention In Russia Has Reportedly Been Extended For Two More Months", 'link': 'https://www.buzzfeednews.com/article/david +mack/brittney-griner-russia-arrest', 'pubDate': 'Mon, 04 Apr 2022 15:44:41 -0400', 'image': 'No image found', 'description': '

The WNBA star was de +tained at a Moscow airport on drug charges. Supporters fear she\'s being held as a political hostage amid Russia\'s war in Ukraine.


View Entire Post › +

'}, {'title': 'What You’re Feeling Isn’t A Vibe Shift. It’s Permanent Change.', 'link': 'https://www.buzzfeednews.com/article/elaminabdelmahmo +ud/vibe-shift-war-in-ukraine', 'pubDate': 'Fri, 18 Mar 2022 19:25:09 -0400', 'image': 'No image found', 'description': '

I was born during the long +est period of global stability. Now, it appears all of that is fleeting.


View Entire Post ›

'}, {'title': 'This Ukrainian Mother Buried Bo +th Of Her Sons Just Six Days Apart', 'link': 'https://www.buzzfeednews.com/article/christopherm51/ukraine-brothers-killed-same-family', 'pubDate': 'We +d, 16 Mar 2022 19:34:18 -0400', 'image': 'No image found', 'description': '

“God takes the very best ones.”


View Entire Post ›

'}, +{'title': 'Russian Oligarch Roman Abramovich Invested At Least $1.3 Billion With US Financiers, Secret Records Show', 'link': 'https://www.buzzfeednew +s.com/article/tomwarren/roman-abramovich-billion-invested-united-states-financiers', 'pubDate': 'Wed, 16 Mar 2022 17:38:25 -0400', 'image': 'No image +found', 'description': '

European governments have frozen the Russian oligarch’s assets, including mansions and a soccer team. But how much he pour +ed into the US has stayed secret.


View Entire Post ›

'}, {'title': "A Fox News Camera Operator And A Local Journalis +t Were Killed Covering Russia's War In Ukraine", 'link': 'https://www.buzzfeednews.com/article/davidmack/fox-news-cameraman-pierre-zakrzewski-killed-u +kraine', 'pubDate': 'Wed, 16 Mar 2022 13:31:52 -0400', 'image': 'No image found', 'description': '

Pierre Zakrzewski, 55, and Oleksandra "Sasha" Ku +vshynova, 24, were killed when their vehicle was hit by incoming fire near Kyiv on Monday, according to the network.


View Entire Post &r +saquo;

'}, {'title': "A Staffer Crashed Russia's Main Evening Newscast With An Anti-War Sign", 'link': 'https://www.buzzfeednews.com/article/da +vidmack/russian-tv-employee-anti-war-protest-live', 'pubDate': 'Tue, 15 Mar 2022 17:12:15 -0400', 'image': 'No image found', 'description': '

“Stop + the war. Don’t believe the propaganda. They’re lying to you,” Marina Ovsyannikova\'s sign read.


< +p>View Entire Post ›

'}, {'title': "T +his Russian Newsroom Has Been Cut Off From Its Readers Amid Putin's War. Now It's Asking The World To Help It Report The Truth.", 'link': 'https://www +.buzzfeednews.com/article/skbaer/meduza-crowdfunding-campaign-russia-war-ukraine', 'pubDate': 'Mon, 14 Mar 2022 14:56:59 -0400', 'image': 'No image fo +und', 'description': '

Meduza, a Russian news site based in Latvia, is seeking 30,000 new supporters so that it can continue to deliver independent + news to millions in Russia.


View Entire Post +›

'}, {'title': 'A US Reporter Was Shot Dead While Covering The War In Ukraine', 'link': 'https://www.buzzfeednews.com/article/davidmack +/brent-renaud-reporter-killed-ukraine-war', 'pubDate': 'Mon, 14 Mar 2022 21:49:39 -0400', 'image': 'No image found', 'description': '

White House n +ational security adviser Jake Sullivan said Brent Renaud\'s death was "shocking and horrifying" and pledged that the US would investigate and respond +appropriately.


View Entire Post ›

'}, {'title': "How Russia’s Top Propagandist Foretold Putin's Justification For The Ukraine Invasio +n Through This Dramatic Film", 'link': 'https://www.buzzfeednews.com/article/deansterlingjones/russia-yevgeny-prigozhin-ukraine-trump-giuliani-films', + 'pubDate': 'Sat, 12 Mar 2022 18:25:06 -0500', 'image': 'No image found', 'description': '

“Putin’s chef” Yevgeny Prigozhin’s network of state medi +a sites used commissioned Cameo videos from Donald Trump Jr. and Rudy Giuliani to publicize another film that reimagines Russia’s role in the 2016 ele +ction.


View Entire Post ›

'}, {'title': 'Inside Project Texas, TikTok’s Big Answer To US Lawmakers’ China Fears', + 'link': 'https://www.buzzfeednews.com/article/emilybakerwhite/tiktok-project-texas-bytedance-user-data', 'pubDate': 'Fri, 11 Mar 2022 15:52:52 -0500' +, 'image': 'No image found', 'description': '

TikTok is rebuilding its systems to keep US user data in the US and putting a new US-based team in co +ntrol. But for now, that team reports to executives in China.


View Entire Post ›

'}, {'title': 'The Biden Administration Has B +een Planning To Tell Mexico That A Trump-Era Policy Could Soon End And Attract More Immigrants To The Border', 'link': 'https://www.buzzfeednews.com/a +rticle/hamedaleaziz/biden-border-plans-title-42', 'pubDate': 'Thu, 10 Mar 2022 22:31:51 -0500', 'image': 'No image found', 'description': '

Returni +ng to prepandemic practices could “seriously strain” border resources and lead to a challenging humanitarian situation in northern Mexico, a draft Dep +artment of Homeland Security document warns.


View Entire Post ›

'}, {'title': "The War In Ukraine Exposes The World's Utter Reliance On Fossil F +uels", 'link': 'https://www.buzzfeednews.com/article/zahrahirji/russia-ukraine-war-fossil-fuels-climate-change', 'pubDate': 'Fri, 11 Mar 2022 00:06:07 + -0500', 'image': 'No image found', 'description': '

“The role of oil and gas in the global economy is very deeply embedded, so any shift is going +to take a long time,” one expert said.


View Entire Post ›

'}, {'title': 'Bipartisan Bill Aims To Stamp Out Human Rights Abuses A +t Conservation Projects', 'link': 'https://www.buzzfeednews.com/article/tomwarren/house-bill-human-rights-wwf', 'pubDate': 'Thu, 10 Mar 2022 16:56:17 +-0500', 'image': 'No image found', 'description': '

Lawmakers say a new bill — prompted by a 2019 BuzzFeed News investigation — would “signal to the world that the United States demands the highest standards of res +pect for every human life.”


View Entire Post ›

'}, {'title': 'Russian Troops Pounded The Town Of Irpin. Now They’re Moving Into Ukrainians’ Homes +.', 'link': 'https://www.buzzfeednews.com/article/christopherm51/ukrainians-fleeing-russian-bombing-irpin', 'pubDate': 'Mon, 14 Mar 2022 14:36:48 -040 +0', 'image': 'No image found', 'description': '

“For many years, Russians tell us, ‘We’re brothers! We’re one people!’ But look — they’re killing u +s!”


View Entire Post ›

'}, {'title': '“Our Duty”: Ukrainian Surgeons Are Operating On Russian Soldiers Wounded In Ukraine', 'lin +k': 'https://www.buzzfeednews.com/article/christopherm51/ukraine-surgeons-wounded-russian-soldiers', 'pubDate': 'Mon, 07 Mar 2022 22:25:05 -0500', 'im +age': 'No image found', 'description': '

“I think we should help them but of course sometimes the feeling I have about it is horrible,” Vitaliy, a +surgeon in Kyiv, told BuzzFeed News. “It feels like I’m doing something wrong.”


View Entire Post ›

'}, {'title': 'Here’s What The + New Climate Report Says About The Future Of My 1-Year-Old Daughter', 'link': 'https://www.buzzfeednews.com/article/zahrahirji/climate-toddler-future' +, 'pubDate': 'Mon, 07 Mar 2022 16:23:53 -0500', 'image': 'No image found', 'description': '

Not halting global warming, said one expert, “would be +the final, truly unfair thing to do to a generation of kids coming up right now.”


View Entire Post ›

'}, {'title': 'A Ukrainian Nuclear Plant Is Now A +War Zone. Here’s What That Means.', 'link': 'https://www.buzzfeednews.com/article/danvergano/ukrainian-nuclear-plant-russia-war-zone', 'pubDate': 'Sat +, 05 Mar 2022 18:29:27 -0500', 'image': 'No image found', 'description': '

“We are in completely uncharted waters,” the head of the International A +tomic Energy Agency said.


View Entire Post ›

'}, {'title': 'Facebook And Twitter Have Been Blocked In Russia', 'link': 'https://www.b +uzzfeednews.com/article/sarahemerson/russia-blocks-facebook-twitter', 'pubDate': 'Sat, 05 Mar 2022 04:25:06 -0500', 'image': 'No image found', 'descri +ption': '

Russia’s communications regulator said it blocked Facebook because of “discrimination against Russian media and information resources." T +witter was blocked shortly after.


View Entire Post ›

'}, {'title': "Russia's Invasion Is Breaking Up Ukrainian Families And The Photos Are Hear +tbreaking", 'link': 'https://www.buzzfeednews.com/article/davidmack/ukraine-family-farewell-photos-men-stay-fight', 'pubDate': 'Sun, 06 Mar 2022 06:25 +:06 -0500', 'image': 'No image found', 'description': '

More than 1.2 million Ukrainians have fled their homeland, but many others are staying to f +ight, leading to emotional scenes at train stations as families say their goodbyes.


View Entire Post ›

'}, {'title': 'Poland’s Top Diplomat In Kyiv Is Pretty Chill About Russia’s Inva +sion Because The City Is “Un-Occupiable”', 'link': 'https://www.buzzfeednews.com/article/christopherm51/poland-ambassador-kyiv-invasion', 'pubDate': ' +Fri, 04 Mar 2022 11:25:06 -0500', 'image': 'No image found', 'description': '

“If Russia succeeds here, we are next.”


View Entire Post ›< +/p>'}, {'title': 'Federal Lawmakers Worry Russian Leaders Are Using Crypto To Avoid Sanctions', 'link': 'https://www.buzzfeednews.com/article/saraheme +rson/federal-lawmakers-worry-russian-leaders-are-using-crypto-to', 'pubDate': 'Wed, 02 Mar 2022 21:05:23 -0500', 'image': 'No image found', 'descripti +on': '

US officials continue to scrutinize cryptocurrency markets for their potential role in aiding Russia’s avoidance of sweeping sanctions.

+


View Entire Post ›

'}, {'title': 'Google Maps Blocked Edits After People Falsely Claimed It Was Used to Coordinate R +ussian Air Strikes', 'link': 'https://www.buzzfeednews.com/article/sarahemerson/russia-google-maps-tags-ukraine', 'pubDate': 'Fri, 04 Mar 2022 00:35:3 +5 -0500', 'image': 'No image found', 'description': '

Ukrainian-language accounts claimed edits targeted gas stations, schools, and hospitals in ci +ties like Kyiv.


View Entire Post ›

'}, {'title': 'Ukrainians Are Desperately Trying To Flee Kyiv As The Russians Advance: “It’s An Absolute N +ightmare”', 'link': 'https://www.buzzfeednews.com/article/christopherm51/ukrainians-flee-kyiv-russian-invasion', 'pubDate': 'Tue, 08 Mar 2022 00:10:52 + -0500', 'image': 'No image found', 'description': '

Thousands of people struggled to board the last trains out of the capital city, forcing famili +es to separate and leave loved ones behind.


View +Entire Post ›

'}, {'title': "Hackers Answered Ukraine's Call For Help. Experts Fear It Isn't Enough.", 'link': 'https://www.buzzfeednews +.com/article/amansethi/ukraine-hacker-cyber-army-russia', 'pubDate': 'Wed, 02 Mar 2022 08:25:05 -0500', 'image': 'No image found', 'description': '

“Nobody\'s ever crowdfunded or crowdsourced cyber defense before. So we\'re in uncharted territory.”


View Entire Post ›

'}, {'title': 'These I +CE Detainees With High-Risk Medical Conditions Fought For Months To Be Released — And They’re Just The Ones We Know About', 'link': 'https://www.buzzf +eednews.com/article/adolfoflores/asylum-seekers-medical-release-delays', 'pubDate': 'Tue, 01 Mar 2022 23:00:52 -0500', 'image': 'No image found', 'des +cription': '

“The lack of medical care is leading to some pretty scary situations for people who are detained there for months and months,” one att +orney said.


View Entire Post ›

'}, {'title': 'The Internet’s Response To Ukraine Has Been Peak Cringe', 'link': 'https://www.buzzfeed +news.com/article/stephaniemcneal/ukraine-memes-tiktok-tweets', 'pubDate': 'Tue, 01 Mar 2022 23:25:06 -0500', 'image': 'No image found', 'description': + '

From Zelensky thirst traps to Star Wars memes, the collective obsession with virality has led to some embarrassing and insensitive posts. +


Vie +w Entire Post ›

'}, {'title': "These Photos Show What It's Like For 500,000 Ukrainians Fleeing Russia's Invasion", 'link': 'https://www. +buzzfeednews.com/article/katebubacz/russia-invasion-ukraine-refugees-photos', 'pubDate': 'Tue, 01 Mar 2022 13:25:07 -0500', 'image': 'No image found', + 'description': '

Ukrainians are fleeing the Russian invasion by foot, train, and car to reach neighboring countries, often enduring a challenging +journey at train stations and borders.


View Entir +e Post ›

'}, {'title': 'Ukraine Tweeted Its Cryptocurrency Wallet And Got $4 Million In Donations To Help Fight Russia', 'link': 'https: +//www.buzzfeednews.com/article/katienotopoulos/ukraine-has-asked-for-donations-in-crypto-to-help-fight', 'pubDate': 'Mon, 28 Feb 2022 20:45:19 -0500', + 'image': 'No image found', 'description': '

A source who confirmed the government’s fundraiser believed the funds would go to “exterminate as many + Russian occupants as possible.”


View Entire Post ›

'}, {'title': 'Russia Has Now Been Booted From Eurovision Fo +r Invading Ukraine', 'link': 'https://www.buzzfeednews.com/article/davidmack/eurovision-ban-russia', 'pubDate': 'Fri, 04 Mar 2022 22:26:46 -0500', 'im +age': 'No image found', 'description': '

A number of other European countries had indicated they would not participate in this year\'s popular song + contest unless Russia was kicked out for its invasion of Ukraine.


View Entire Post ›

'}, {'title': 'Photos Show How People Around The World Are Respondin +g To Russia Invading Ukraine', 'link': 'https://www.buzzfeednews.com/article/piapeterson/russia-invasion-ukraine-world-protests-photos', 'pubDate': 'F +ri, 04 Mar 2022 21:26:34 -0500', 'image': 'No image found', 'description': '

From Japan to Turkey, people showed up with flags, traditional Ukraini +an clothing, and signs to protest Russia\'s deadly invasion of Ukraine.


View Entire Post ›

'}, {'title': 'Russian Troops Have E +ntered Kyiv, Putting Ukraine’s Democratically Elected Government In The Crosshairs', 'link': 'https://www.buzzfeednews.com/article/skbaer/kyiv-russian +-invasion', 'pubDate': 'Fri, 04 Mar 2022 22:15:14 -0500', 'image': 'No image found', 'description': '

“Last time our capital experienced anything l +ike this was in 1941 when it was attacked by Nazi Germany.”


View Entire Post ›

'}, {'title': 'This Is What It Was Like In Ukraine When Russia’s Attack Change +d Everything', 'link': 'https://www.buzzfeednews.com/article/christopherm51/russian-attack-ukraine-experience', 'pubDate': 'Wed, 09 Mar 2022 09:17:39 +-0500', 'image': 'No image found', 'description': '

The blasts shook the walls, illuminated my room even through thick curtains, and jolted me up.< +/h1>


< +p>View Entire Post ›

'}, {'title': "Thou +sands Of Russians, Including Celebrities, Are Risking Being Arrested To Protest Putin's Invasion Of Ukraine", 'link': 'https://www.buzzfeednews.com/ar +ticle/juliareinstein/russian-protest-ukraine-invasion', 'pubDate': 'Mon, 28 Feb 2022 03:25:05 -0500', 'image': 'No image found', 'description': '

T +housands of Russians, including celebrities, protested the deadly invasion of Ukraine on Thursday despite government warnings of "severe punishment."< +/h1>


+View Entire Post ›

'}, {'title': 'Russia Has Invaded Ukraine, Threatening The Safety Of Millions', 'link': 'https://www.buzzfeednews.com +/article/christopherm51/russia-invades-ukraine', 'pubDate': 'Fri, 25 Feb 2022 17:45:43 -0500', 'image': 'No image found', 'description': '

Russian +shells and missiles hit cities and regions across the country, including many previously untouched by the conflict. “Don’t understand how this can hap +pen in the 21st century,” one Ukrainian civilian seeking safety said.


View Entire Post ›

'}, {'title': '9 Photo Stories That Will Challenge Your View Of The World', 'link': 'https://www.buzzfeednews +.com/article/piapeterson/photo-stories-feb-19', 'pubDate': 'Tue, 22 Feb 2022 17:35:16 -0500', 'image': 'No image found', 'description': '

Here are +some of the most interesting and powerful photo stories from across the internet.


View Entire Post ›

'}, {'title': 'Prince Charles Thanked The Queen F +or Giving Her Blessing For Camilla To Become "Queen Consort"', 'link': 'https://www.buzzfeednews.com/article/davidmack/queen-elizabeth-platinum-jubile +e-charles-camilla', 'pubDate': 'Tue, 08 Feb 2022 04:16:09 -0500', 'image': 'No image found', 'description': '

Sunday marks 70 years since Queen Eli +zabeth II assumed the throne. She\'s the first British monarch to ever reach the so-called Platinum Jubilee.


View Entire Post ›< +/p>'}, {'title': 'Was This Shirt Made With Forced Labor? Hugo Boss Quietly Cut Ties With The Supplier.', 'link': 'https://www.buzzfeednews.com/article +/alison_killing/hugo-boss-removes-esquel-xinjiang-forced-labor', 'pubDate': 'Thu, 03 Feb 2022 15:12:37 -0500', 'image': 'No image found', 'description +': '

Hugo Boss distanced itself from a major clothing manufacturer shortly after a BuzzFeed News report on its links to cotton in Xinjiang, which the US has banned.


View Entire Post ›

'}, {'title': 'These Moving Photos Show The Lives Of Holocaust Survivors Today', 'link': 'https://www.buzzfeednews. +com/article/piapeterson/photos-holocaust-survivors-lives', 'pubDate': 'Fri, 28 Jan 2022 16:33:47 -0500', 'image': 'No image found', 'description': 'The photo exhibition shows how their lives and legacies are being passed down the generations, reminding us collectively how important it is that th +ey are remembered.


View Entire Post ›

'}, {'title': '7 Photo Stories That Will Challenge Your View Of The World', 'link': 'https://www.buz +zfeednews.com/article/piapeterson/7-photo-stories-that-will-challenge-your-view-of-the-world', 'pubDate': 'Tue, 18 Jan 2022 16:25:10 -0500', 'image': +'No image found', 'description': '

Here are some of the most interesting and powerful photo stories from across the internet.


View Entire Post ›

'}, {'title': 'Facebook’s Spanish-Language Moderators Are Calling Their Work A “Nightmare”', 'link': 'https://www.bu +zzfeednews.com/article/sarahemerson/facebooks-spanish-language-moderators-said-theyre-treated', 'pubDate': 'Fri, 14 Jan 2022 00:48:16 -0500', 'image': + 'No image found', 'description': '

Contractors who moderate Spanish-language content on Facebook said they’ve been forced to come to the office du +ring COVID surges.


View Entire Post ›

'}, {'title': 'Hugo Boss And Other Big Brands Vowed To Steer Clear Of Forced Labor In China — + But These Shipping Records Raise Questions', 'link': 'https://www.buzzfeednews.com/article/alison_killing/xinjiang-forced-labor-hugo-boss-esquel', 'p +ubDate': 'Wed, 19 Jan 2022 19:44:03 -0500', 'image': 'No image found', 'description': '

Amid rising tensions and the approaching Beijing Olympics, +the US banned Xinjiang cotton last year. But Hugo Boss still took shipments from Esquel, which gins cotton in Xinjiang.


View Entire Post &rsaqu +o;

'}, {'title': 'Novak Djokovic Has To Leave Australia After His COVID Vaccine Exemption Visa Was Canceled', 'link': 'https://www.buzzfeednews +.com/article/davidmack/novak-djokovic-australian-airport-visa-canceled', 'pubDate': 'Thu, 06 Jan 2022 18:25:13 -0500', 'image': 'No image found', 'des +cription': '

The decision means the top-ranked tennis player will likely miss the Australian Open. “They expect to be on the flight back home later + in the day,” a source told BuzzFeed News.


View Entire Post ›

'}, {'title': 'Photos Show A Year Of Catastrophic Events Due To C +limate Change', 'link': 'https://www.buzzfeednews.com/article/piapeterson/climate-change-2021-photos', 'pubDate': 'Wed, 29 Dec 2021 13:21:28 -0500', ' +image': 'No image found', 'description': '

We looked back at the year in climate change and the disasters we\'ll be seeing more often as our world +is altered by climate-polluting fossil fuels.


View Entire Pos +t ›

'}, {'title': 'Satellite Images Show Russian Military Forces Keep Massing Near Ukraine’s Border', 'link': 'https://www.buzzfeednews. +com/article/christopherm51/russia-troops-ukraine-border-satellite-photos', 'pubDate': 'Tue, 22 Feb 2022 18:06:40 -0500', 'image': 'No image found', 'd +escription': '

Satellite images provided to BuzzFeed News and a slew of social media videos show that new Russian troops and heavy artillery were m +oved to strategic locations right around Biden and Putin’s virtual summit.


View Entire Post ›

'}, {'title': 'Barbados Ditch +ed The Queen And Immediately Declared Rihanna A National Hero', 'link': 'https://www.buzzfeednews.com/article/davidmack/barbados-republic-rihanna', 'p +ubDate': 'Wed, 01 Dec 2021 17:25:11 -0500', 'image': 'No image found', 'description': '

“May you continue to shine like a diamond."


View Entire Post ›

'}, {'title': 'They Arrived At The Pub On Friday + Night. They Left Monday Morning.', 'link': 'https://www.buzzfeednews.com/article/davidmack/stranded-pub-snow-england', 'pubDate': 'Wed, 15 Dec 2021 2 +2:59:02 -0500', 'image': 'No image found', 'description': '

"It was like an adult sleepover!”


+

View Entire Post ›

'}, {'title': 'Clearview AI Is +Facing A $23 Million Fine Over Facial Recognition In The UK', 'link': 'https://www.buzzfeednews.com/article/richardnieva/clearview-ai-faces-potential- +23-million-fine-over-facial', 'pubDate': 'Tue, 30 Nov 2021 02:52:08 -0500', 'image': 'No image found', 'description': '

The provisional decision co +mes after a series of BuzzFeed News investigations revealing widespread and sometimes unsanctioned use of the company’s facial recognition software ar +ound the world.


View Entire Post ›

'}, {'title': 'A Chinese Tennis Star Accused A Top Official Of Sexual Assault +. Then She Disappeared.', 'link': 'https://www.buzzfeednews.com/article/davidmack/peng-shuai-missing-mystery', 'pubDate': 'Sat, 20 Nov 2021 02:25:08 - +0500', 'image': 'No image found', 'description': '

Tennis stars are demanding answers about Peng Shuai, whose disappearance has again underscored C +hina’s brutal authoritarianism just months before it hosts the Winter Olympics.


View Entire Post ›

'}, {'title': 'Prevent Catastrophic Climate Chan +ge Or Keep Burning Coal? You Can’t Have Both.', 'link': 'https://www.buzzfeednews.com/article/zahrahirji/climate-change-coal-power-paris-agreement', ' +pubDate': 'Fri, 12 Nov 2021 17:17:15 -0500', 'image': 'No image found', 'description': '

"By 2030 in the United States, we won’t have coal,” US Spe +cial Presidential Envoy for Climate John Kerry claimed this week.


View Entire Post ›

'}, {'title': 'Amazing Photos Of Airport Reun +ions After The Coronavirus Pandemic Separated Families', 'link': 'https://www.buzzfeednews.com/article/piapeterson/airport-reunions-covid-restrictions +-lifted-photos', 'pubDate': 'Fri, 12 Nov 2021 00:22:38 -0500', 'image': 'No image found', 'description': '

Countries like the US and Australia are +reopening their borders to vaccinated travelers, making for emotional reunions nearly two years in the making at airports around the world.


View Entire Post ›

'}, {'title': 'Why + Facebook Shutting Down Its Old Facial Recognition System Doesn’t Matter', 'link': 'https://www.buzzfeednews.com/article/emilybakerwhite/facebook-face +prints-are-the-tip-of-the-biometric-iceberg', 'pubDate': 'Sat, 06 Nov 2021 16:05:41 -0400', 'image': 'No image found', 'description': '

Facebook ju +st made a big deal of shutting down its original facial recognition system. But the company’s pivot to the metaverse means collecting more personal in +formation than ever before.


View Entire Post ›

'}, {'title': 'The World Is On Track To Warm 3 Degrees Celsius T +his Century. Here’s What That Means.', 'link': 'https://www.buzzfeednews.com/article/zahrahirji/global-warming-3-degrees-celsius-impact', 'pubDate': ' +Thu, 04 Nov 2021 14:31:49 -0400', 'image': 'No image found', 'description': '

Our current coastlines gone. Bangkok underwater. Massive declines in +the fish population. More droughts, downpours, and heat waves.


View Entire Post ›

'}, {'title': 'How The Pandemic Severed One Of Sou +thern Africa’s Main Economic Lifelines', 'link': 'https://www.buzzfeednews.com/article/markophiri/zimbabwe-cross-border-traders-pandemic', 'pubDate': +'Tue, 09 Nov 2021 00:11:02 -0500', 'image': 'No image found', 'description': '

With few options, some traders have turned to smuggling or sex work. + “I work with what I have at the moment,” one woman said.


View Entire Post ›

'}, {'title': 'A Data Sleuth Challenged A Powerful COVID Sci +entist. Then He Came After Her.', 'link': 'https://www.buzzfeednews.com/article/stephaniemlee/elisabeth-bik-didier-raoult-hydroxychloroquine-study', ' +pubDate': 'Tue, 19 Oct 2021 19:01:03 -0400', 'image': 'No image found', 'description': '

Elisabeth Bik calls out bad science for a living. A feud w +ith one of the world’s loudest hydroxychloroquine crusaders shows that it can carry a high price.


< +p>View Entire Post ›

' +}, {'title': 'The DOJ Is Investigating Americans For War Crimes Allegedly Committed While Fighting With Far-Right Extremists In Ukraine', 'link': 'htt +ps://www.buzzfeednews.com/article/christopherm51/craig-lang-ukraine-war-crimes-alleged', 'pubDate': 'Mon, 11 Oct 2021 13:09:22 -0400', 'image': 'No im +age found', 'description': '

The probe involves seven men but is centered on former Army soldier Craig Lang, who is separately wanted in connection + with a double killing in Florida and is fighting extradition from Kyiv.


View Entire Post ›

'}, {'title': 'These Photos Show The Timeless Appeal Of Travel And Tourism', 'link': 'https:// +www.buzzfeednews.com/article/piapeterson/photos-travel-photography-history', 'pubDate': 'Thu, 30 Sep 2021 13:16:02 -0400', 'image': 'No image found', +'description': '

“Now that travel has opened up, you can access more places and see more things. Our definition of travel photography has changed.” +


Vi +ew Entire Post ›

'}, {'title': 'Immigrants Who Escaped The Texas Camp Crackdown Are Facing Another Set Of Dire Circumstances In Mexico', + 'link': 'https://www.buzzfeednews.com/article/adolfoflores/immigrants-mexico-stuck-fear-deportation', 'pubDate': 'Sun, 26 Sep 2021 02:09:15 -0400', ' +image': 'No image found', 'description': '

“I’d like to stay here in Mexico, but I’m scared because I don’t have permission to be here,” one immigr +ant told BuzzFeed News. “I don\'t know what to do."


View Entire Post ›

'}, {'title': "These Pics Of Angela Merkel Covered In Birds Are Now A Meme And It's Sehr Gut", 'link': 'https://w +ww.buzzfeednews.com/article/davidmack/angela-merkel-birds', 'pubDate': 'Wed, 15 Dec 2021 23:02:29 -0500', 'image': 'No image found', 'description': '< +h1>"Instagram vs. Twitter."


View Entire Post ›

'}, {'title': 'How A Mission To Turn A Haitian Town Into A Surfing Destination Failed To Live Up To Its Pro +mise', 'link': 'https://www.buzzfeednews.com/article/karlazabludovsky/haiti-surfing', 'pubDate': 'Wed, 22 Sep 2021 00:09:23 -0400', 'image': 'No image + found', 'description': '

Surfing was a profitable enterprise in Jacmel, as locals rented out boards and hosted lessons. But the project’s recent s +truggles reflect the difficulty of obtaining resources in a country battered by a series of catastrophes.

< +/p>


View Entire Post ›

'}, {'title': 'Top Scientis +ts At The FDA And WHO Are Arguing Against COVID-19 Booster Shots', 'link': 'https://www.buzzfeednews.com/article/azeenghorayshi/fda-who-booster-shots- +opposition', 'pubDate': 'Wed, 15 Sep 2021 14:38:06 -0400', 'image': 'No image found', 'description': '

In a review published on Monday, the experts + said the evidence does not show that boosters are needed for the general population.


View Entire Post ›

'}, {'title': 'Prince Andrew Has + Been Served With A Sexual Abuse Lawsuit By Jeffrey Epstein Accuser Virginia Giuffre', 'link': 'https://www.buzzfeednews.com/article/ellievhall/prince +-andrew-served-sexual-assault-lawsuit-giuffre', 'pubDate': 'Fri, 10 Sep 2021 21:15:51 -0400', 'image': 'No image found', 'description': '

The perso +n who served the papers told the court that the first time he tried, Andrew\'s security team said they weren\'t allowed to accept anything court-relat +ed.


View Entire Post ›

'}, {'title': 'He Got Out Of Afghanistan Just In Time. His Family Didn’t.', 'link': 'https://www.b +uzzfeednews.com/article/meghara/afghanistan-kabul-collapse-families-left-behind', 'pubDate': 'Thu, 02 Sep 2021 21:51:59 -0400', 'image': 'No image fou +nd', 'description': '

When Farhad Wajdi left Afghanistan for the US, he assumed he could help his parents get out too. But then everything changed. +


+

View Entire Post ›

'}, {'title +': 'UN Peacekeepers Fathered Dozens Of Children In Haiti. The Women They Exploited Are Trying To Get Child Support.', 'link': 'https://www.buzzfeednew +s.com/article/karlazabludovsky/haiti-earthquake-un-peacekeepers-sexual-abuse', 'pubDate': 'Tue, 31 Aug 2021 19:21:53 -0400', 'image': 'No image found' +, 'description': '

A landmark ruling in a Haitian court offers some hope to the families seeking child support, but the peacekeeper fathers won’t h +ave to pay unless their home countries step in.


View Entire Post ›

'}, {'title': '12 Photo Stories That Will Challenge Your View Of The World', 'link': 'https://www.buzzfeedne +ws.com/article/piapeterson/12-photo-stories-that-will-challenge-your-view-of-the-world', 'pubDate': 'Sun, 29 Aug 2021 22:33:33 -0400', 'image': 'No im +age found', 'description': '

Here are some of the most interesting and powerful photo stories from across the internet.


Vie +w Entire Post ›

'}, {'title': 'Working Women In Afghanistan Are Beginning To Navigate Life Under Taliban Rule', 'link': 'https://www.buz +zfeednews.com/article/nishitajha/afghanistan-nurse-hospital-taliban', 'pubDate': 'Fri, 27 Aug 2021 19:42:25 -0400', 'image': 'No image found', 'descri +ption': '

At a hospital in Kabul, terrified patients fled their beds, a new policy bars interactions between men and women, and nurses and doctors +must check in with the Taliban daily.


View Entire Post ›

'}, {'title': 'These Photos Show The Devastating Aftermath Of The Deadly Kabul Air +port Attack', 'link': 'https://www.buzzfeednews.com/article/kirstenchilstrom/kabul-airport-explosions-aftermath-photos', 'pubDate': 'Fri, 27 Aug 2021 +19:59:20 -0400', 'image': 'No image found', 'description': '

At least 13 US service members and an unknown number of Afghan civilians were killed i +n an explosion at an already chaotic airport.


View Entire Post ›

'}, {'title': "London's Famous Notting Hill Carnival Is Canc +eled This Year, But Here's A Look Back At The Party", 'link': 'https://www.buzzfeednews.com/article/piapeterson/photos-london-notting-hill-carnival-ca +nceled', 'pubDate': 'Fri, 27 Aug 2021 01:21:52 -0400', 'image': 'No image found', 'description': '

Looking back at over five decades of joy put on +by the Black British and Caribbean community in London.


View Entire Post ›

'}, {'title': 'Police In At Least 24 Countries Have +Used Clearview AI. Find Out Which Ones Here.', 'link': 'https://www.buzzfeednews.com/article/ryanmac/clearview-ai-international-search-table', 'pubDat +e': 'Fri, 27 Aug 2021 19:52:07 -0400', 'image': 'No image found', 'description': '

As of February 2020, 88 law enforcement and government-affiliate +d agencies in 24 countries outside the United States have tried to use controversial facial recognition technology Clearview AI, according to a BuzzFe +ed News investigation.


View Entire Post ›

'}, {'title': 'Foreign UN Staffers Are Evacuating Afghanistan. Local Staffers Say They Have Been Left Behind.', 'l +ink': 'https://www.buzzfeednews.com/article/meghara/un-afghanistan-staffers-taliban', 'pubDate': 'Tue, 24 Aug 2021 21:35:22 -0400', 'image': 'No image + found', 'description': '

Afghan nationals who work for the UN take on far greater risks for less pay than their international colleagues, and thei +r work leaves them exposed to Taliban reprisals.


View Entire Post ›

'}, {'title': '7 Photo Stories That Will Challenge Your View Of The World', +'link': 'https://www.buzzfeednews.com/article/piapeterson/photo-stories-aug-21', 'pubDate': 'Sun, 22 Aug 2021 23:44:02 -0400', 'image': 'No image foun +d', 'description': '

Here are some of the most interesting and powerful photo stories from across the internet.


View Entire Post ›

'}, {'title': 'Pe +ople Who Fled Vietnam Are Reliving Their Trauma Watching The Fall Of Kabul', 'link': 'https://www.buzzfeednews.com/article/skbaer/saigon-kabul-compari +son-vietnam-afghanistan', 'pubDate': 'Tue, 24 Aug 2021 17:21:59 -0400', 'image': 'No image found', 'description': '

"I think about my family, about + what they’ve been through ... and I think that what\'s going to happen in Afghanistan [is] going to be so much, even worse than what I can imagine."< +/h1>


View Entire Post ›

'}, {'title': 'She Smuggled Women In Kabul To Safety. Now She’s Hiding From The Taliban.', 'link': 'https://www.bu +zzfeednews.com/article/nishitajha/afghanistan-woman-hiding-taliban-blacklist', 'pubDate': 'Sat, 21 Aug 2021 04:57:53 -0400', 'image': 'No image found' +, 'description': '

Though the Taliban have blacklisted Nilofar Ayoubi, she has insisted on speaking out about women’s rights in Afghanistan.


V +iew Entire Post ›

'}, {'title': 'Big Tech Thought It Had A Billion Users In The Bag. Now It Might Be Forced To Make Hard Choices To Get +Them.', 'link': 'https://www.buzzfeednews.com/article/pranavdixit/big-tech-thought-it-had-a-billion-users-in-the-bag-now-its', 'pubDate': 'Fri, 20 Aug + 2021 18:51:59 -0400', 'image': 'No image found', 'description': '

Long viewed as the world’s biggest market for “the next billion users,” India is + fast becoming Silicon Valley’s biggest headache.


View Entire Post ›

'}, {'title': 'These Photos Of Haiti Show The + Pain And Turmoil From Back-To-Back Natural Disasters', 'link': 'https://www.buzzfeednews.com/article/kirstenchilstrom/haiti-tropical-storm-photos', ' +pubDate': 'Thu, 19 Aug 2021 14:21:54 -0400', 'image': 'No image found', 'description': '

Days after a magnitude 7.2 tremor killed more than 1,400 p +eople, bodies still lie in the streets as officials grapple with the chaos and poor weather.


View Entire Post ›

'}, {'title': 'This Is What The Fall Of Kabul To The Taliban Looks Like', 'link +': 'https://www.buzzfeednews.com/article/katebubacz/the-fall-of-kabul-taliban-photos', 'pubDate': 'Tue, 17 Aug 2021 18:45:25 -0400', 'image': 'No imag +e found', 'description': '

Photos show chaotic scenes at the airport and Taliban soldiers patrolling the streets.


View Entire Post ›

'}, + {'title': '8 Photo Stories That Will Challenge Your View Of The World', 'link': 'https://www.buzzfeednews.com/article/piapeterson/photo-stories-aug-1 +4', 'pubDate': 'Mon, 16 Aug 2021 00:00:58 -0400', 'image': 'No image found', 'description': '

Here are some of the most interesting and powerful ph +oto stories from across the internet.


View Entire Post ›

'}, {'title': 'People Have Fallen In Love With This Herd Of Wild Elephants Looking For A New Ha +bitat In China', 'link': 'https://www.buzzfeednews.com/article/piapeterson/wild-elephant-journey-china', 'pubDate': 'Thu, 12 Aug 2021 14:41:48 -0400', + 'image': 'No image found', 'description': '

More than 150,000 people were evacuated from homes in the elephants\' path, but the animals have becom +e local darlings as fans track their progress.


View Entire P +ost ›

'}, {'title': 'These Photos Show The Immense Scale Of The Wildfires Ravaging Greece', 'link': 'https://www.buzzfeednews.com/articl +e/kirstenchilstrom/greece-wildfires-photos-destruction', 'pubDate': 'Thu, 12 Aug 2021 00:44:02 -0400', 'image': 'No image found', 'description': '

+Thousands of people, many with injured animals, have been forced to flee the wildfires.


View Entire Post ›

'}, {'title': 'Goods Link +ed To A Group That Runs Chinese Detention Camps May Be Ending Up In US Stores', 'link': 'https://www.buzzfeednews.com/article/meghara/china-xinjiang-b +anned-goods-united-states', 'pubDate': 'Fri, 13 Aug 2021 01:22:02 -0400', 'image': 'No image found', 'description': '

A major organization in the r +egion, sanctioned for its “connection to serious human rights abuses against ethnic minorities,” still does business all over the world.


View Entire +Post ›

'}, {'title': "Great Britain's First Black Olympic Swimmer Is Hopeful Swimming Caps For Black Hair Will Be Approved For The Next +Games", 'link': 'https://www.buzzfeednews.com/article/ikrd/first-uk-black-olympic-swimmer-caps', 'pubDate': 'Fri, 13 Aug 2021 10:13:50 -0400', 'image' +: 'No image found', 'description': '

“I know a lot of people want to be on the right side of history with this. So I\'m very optimistic that there\ +'s going to be a positive outcome from it.”


View Entire Post ›

'}, {'title': '“It Is Unequivocal”: Humans Are Driving Worsening Climate Disaster +s, Hundreds Of Scientists Said In A New Report', 'link': 'https://www.buzzfeednews.com/article/zahrahirji/ipcc-climate-change-report-2021', 'pubDate': + 'Wed, 11 Aug 2021 14:12:40 -0400', 'image': 'No image found', 'description': '

The highly anticipated United Nations report on climate change deta +ils both the increasingly dire crisis facing the world and what\'s needed to stop it.


View Entire Post ›

'}, {'title': 'Yes, Delta Is Scary, +But Europe’s Recent COVID Surges Show That It Can Be Controlled', 'link': 'https://www.buzzfeednews.com/article/peteraldhous/delta-variant-wave-uk-eur +ope', 'pubDate': 'Sun, 08 Aug 2021 22:00:03 -0400', 'image': 'No image found', 'description': '

“The UK and Netherlands should be a counsel against + despair,” one expert told BuzzFeed News. “We needn’t be fatalistic about the Delta variant.”


View Entire Post ›

'}, {'title': "Looking Back At + Meghan Markle's Last 15 Years For Her 40th Birthday", 'link': 'https://www.buzzfeednews.com/article/piapeterson/meghan-markle-40th-birthday-photos', +'pubDate': 'Wed, 04 Aug 2021 20:11:49 -0400', 'image': 'No image found', 'description': '

Meghan\'s life has changed dramatically over the past dec +ade — here\'s a look back at her epic journey to being a royal.


View Entire Post ›

'}, {'title': 'Simone Biles Won A Bronze Medal In Her Olympic Return', 'link': 'https://www.buzzfeednews.c +om/article/ikrd/simone-biles-bronze-tokyo', 'pubDate': 'Tue, 03 Aug 2021 16:25:34 -0400', 'image': 'No image found', 'description': '

"I was proud +of myself just to go out there after what I\'ve been through," Biles said afterward.


View Entire Post ›

'}, {'title': 'Simone Biles Will Compete In The Gy +mnastics Balance Beam Final', 'link': 'https://www.buzzfeednews.com/article/ikrd/simone-biles-balance-beam-mental-health', 'pubDate': 'Mon, 02 Aug 202 +1 20:00:53 -0400', 'image': 'No image found', 'description': '

It will be her first appearance since she dropped out of the team all-around competition l +ast week, citing her mental health.


View Entire Post ›

'}, {'title': 'The Uplifting Olympics Content We All Need Right Now', 'link': 'https +://www.buzzfeednews.com/article/kirstenchilstrom/heartwarming-photos-tokyo-olympics', 'pubDate': 'Sat, 31 Jul 2021 03:01:45 -0400', 'image': 'No image + found', 'description': '

These celebratory moments from the Olympics make me want to cry and cheer.


View Entire Post ›

'}, {'title': 'US Olympic Fencers Wore Pink Masks To Protest A +gainst Their Teammate Accused Of Sexual Assault', 'link': 'https://www.buzzfeednews.com/article/tasneemnashrulla/fencers-pink-masks-alen-hadzic', 'pub +Date': 'Tue, 03 Aug 2021 09:25:41 -0400', 'image': 'No image found', 'description': '

Three men on the US épée team took a stand against their team +mate Alen Hadzic\'s inclusion in the Olympics despite sexual assault allegations against him.


+View Entire Post ›

'}, {'title': 'Gorgeou +s Photos Show What The Last Tokyo Olympics Looked Like In 1964', 'link': 'https://www.buzzfeednews.com/article/piapeterson/tokyo-olympics-1964-photos' +, 'pubDate': 'Sat, 31 Jul 2021 21:25:29 -0400', 'image': 'No image found', 'description': '

Over 50 years ago, Tokyo hosted its first modern Olympi +cs. It looked very different from the games today!


View Entire Post ›

'}]""")) + + def valid_parse_link_page_test(self): + self.assertEqual(reader.parse_link_page(news_valid_link), + ("Spit, 'disrespect' arrive at Wimbledon as tennis turns ugly")) + + def invalid_parse_link_page_test(self): + self.assertEqual(reader.parse_link_page(news_invalid_link), 'No description') diff --git a/LianaKalpakchyan/rss_reader/setup.py b/LianaKalpakchyan/rss_reader/setup.py new file mode 100644 index 00000000..122157fa --- /dev/null +++ b/LianaKalpakchyan/rss_reader/setup.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import setuptools + + +setuptools.setup( + name="rss_reader", + version="0.4.0", + description=" Python RSS-reader", + author="Liana Kalpakchyan", + author_email="kalpakchyanliana@gmail.com", + install_requires=['argparse', + 'requests', + 'bs4', + 'dateparser', + 'datetime', + 'lxml', + 'xhtml2pdf', + 'html5lib' + ], + packages=setuptools.find_packages(), + include_package_data=True, + entry_points={ + 'console_scripts': ['rss_reader=rss_reader.rss_reader:main'] + }, +) +