Сертификация миксологии «Сообщества» (телевизионный эпизод, 2010 г.) — Дональд Гловер в роли Троя Барнса
Джефф Вингер : Троя. Думаю, я должен тебе день рождения.
Трой Барнс : Я крут. На самом деле я всегда хотел водить эту штуку.
Джефф Вингер
:
Что? О, это моя машина? Не разбивайте его.
Трой Барнс : Я не собираюсь разбивать его.
Бритта Перри : Разбей его, Трой.
Джефф Вингер
:
Иди спать, Бритта, иди спать.
Бритта Перри : Разбей его машину, Трой.
Абед Надир : Это похоже на темную главу в нашей истории.
Бритта Перри
:
Иди спать, Эбед.
Абед Надир : Прохладный.
Бритта Перри : Эй, это то место, куда мы должны были пойти сегодня вечером.
Джефф Вингер
:
Да, Л Стрит, точно.
Бритта Перри : Это Красная Дверь, дурак. Вы видите знак с надписью L Street?
Джефф Вингер : L Street слишком крутая, чтобы иметь знак. Он называется L Street по названию улицы, на которой он находится.
Бритта Перри
:
Красная дверь находится на L Street.
Джефф Вингер : На L Street есть красный…
[Джефф и Бритта смеются]
Джефф Вингер
:
[Трой блокирует тормоза, шины визжат]
Привет.
Трой Барнс : Это тот самый бар? Вы двое всю ночь говорили, что один бар отстойный, а другой потрясающий, и это один и тот же бар? я
Бритта Перри : Ну, он, вероятно, ходит туда по вечерам в пятницу, что отстойно.
Джефф Вингер
:
Ты хочешь.
Трой Барнс : Стоп, просто остановись. Я просто провел последние два года, думая, что вы, ребята, знаете о жизни больше, чем я, и я только что обнаружил, что вы, ребята, такие же тупые, как и я.
Бритта Перри : Ду-дой.
Джефф Вингер : Ага.
Ду-дой.Трой Барнс : Понятно. Ду-дой.
[смеется]
Трой Барнс : Ду-дой.
[Троя включает передачу и едет]
| #!/usr/bin/env Python | |
| ### Скрипт для расчета вашего зеркального события и | |
### извлечь историческую информацию с onthisday. com | |
| ### Авторы: Хан Чен @hchen725 и Робин Мейерс @robinmeyers | |
| ### Навеяно этим твитом Вольфганга Хубера | |
| ### https://twitter.com/wolfgangkhuber/status/1435525232136232963 | |
| ###, который гласит: «Какое у вас зеркальное событие (день рождения — возраст)?» | |
| ### использование: mirror_event.py <день рождения в формате ГГГГ-ММ-ДД> | |
| ### пример вывода: | |
| ################################################## ####################################### | |
| # | № | |
| # __ ____ | ____ __ № | |
| # / |/ (_)_____________ _____ | _____ ___________(_) \| \# | |
| # / /|_/ / / ___/ ___/ __ \/ ___/ | \___ \/ __ \___ \___ \ \ \_|\ \ # | |
| # / / / / / / / / / /_/ / / | \\\_\\\\\\\\\\# | |
| # /_/ _/_/_/_/ /_/ \____/_/_ | _\_\____/ \_\ \_\_\_\_ \_\ # | |
| # / ____/ _____ ____ / /_ | _\ \ ____ _____ \____ \ # | |
| # / __/ | | // _ \/ __ \/ __/ | \__ \/ __ \/ _ \ \ | | \__\# | |
| # / /___ | |/ / __/ / / / /_ | _\ \ \ \ \__ \ \| | ___\\# | |
| # /_____/ |___/\___/_/ /_/\__/ | \__/\_\ \_\___/\___| \_____\ # | |
| # | № | |
| # Дата рождения # | |
| # Последние 18 912 дней | 18 912 дней Сегодня # | |
| # <--------------------------------------------------|---------- ----------------------------> # | |
| # Сб 23 марта 1918 Чт 01 января 1970 Вт 12 октября 2021 # | |
| ## | |
| # Ваши ЗЕРКАЛЬНЫЕ СОБЫТИЯ В этот день: сб 23 марта 1918 # | |
| # # | |
| # Исторические события: # | |
| # — Алик Уикхэм ныряет на 200 футов в реку Ярра в Австралии # | |
| # — Немецкие войска продвинулись на 14 миль к реке Сомма (Первая мировая война) # | |
| # — Германия начинает использовать дальнобойное орудие «Кайзер Вильгельм Гешютц» («Император № | |
| # William Gun’), он же ‘Paris Gun’ для обстрела Парижа из Крепи-ан-Лаонне, 75 # | |
| # миль; за несколько дней 303 выстрела убили 256 и ранили более 600 # | |
| # — Литва провозглашает независимость # | |
| # # | |
| # Известные рождения: # | |
| # — Гранвиль «Sticks» МакГи, американский блюзовый гитарист, певец и автор песен # | |
# («Пить вино, Спо-Ди-О-Ди»), родился в Ноксвилле, Теннесси (ум. 1961) # | |
| # # | |
| # Известные смерти: # | |
| # — Сезар Кортинас, уругвайский композитор, умер в возрасте 27 лет # | |
| ################################################## ####################################### | |
| импорт ос | |
| импорт математики | |
| запросов на импорт | |
| из bs4 импортировать BeautifulSoup | |
| импортировать панд как pd | |
| импорт даты и времени | |
| из даты и времени импорта даты и времени как DT | |
| календарь импорта | |
| импортировать текстовую обертку | |
| определение get_current_date(): | |
current_date = datetime. date(dt.today().год, dt.today().месяц, dt.today().день) | |
| вернуть текущую_дату | |
| определение формат_дня рождения (ввод): | |
| год, месяц, день = карта (целое число, input.split (‘-‘)) | |
| дата рождения = дата/время.дата(год, месяц, день) | |
| вернуть дату рождения | |
| по определению calculate_past_date (текущее, рождение): | |
| дня = текущий — | рождения|
| прошлое = день рождения — | дней|
| возврат (прошлое, дней) | |
| по определению query_onthisday (дата): | |
url = ‘https://www. onthisday.com/date/’ + str(date.year) + ‘/’ + str(calendar.month_name[date.month]) + ‘/’ + str(date.day ) + ‘/’ | |
| html = запросы.get(url).content | |
| суп = BeautifulSoup(html, features = ‘lxml’) | |
| возвратный суп | |
| деф get_events(суп): | |
| исторические_события = суп.найти_все (класс_ = ‘событие’) | |
| для x в диапазоне (0, len (исторические_события)): | |
history_events[x] = str(history_events[x]). replace(‘ | |
| человека = суп.найти_все(класс_ = ‘человек’) | |
| для x в диапазоне (0, len (люди)): | |
| человек[x] = str(люди[x]).replace(‘ | |
| known_births = [строка для строки в людях, если «родился» в строке] | |
| known_deaths = [строка для строки в людях, если «умирает» в строке] | |
| возврат {‘исторические_события’ : исторические_события, ‘знаменитые_рождения’ : известные_рождения, ‘известные_смерти’ : известные_смерти} | |
| def mirror_event_header (ширина): | |
| анси = р»»» | |
| __ ____ | |
| / |/ (_)_____________ _____ | |
| / /|_/ / / ___/ ___/ __ \/ ___/ | |
| / / / / / / / / / /_/ / / | |
| /_/ _/_/_/_/ /_/ \____/_/_ | |
| / ____/ _____ ____ / /_ | |
| / __/ | | // _ \/ __ \/ __/ | |
| / /___ | |/ / __/ / / / /_ | |
| /_____/ |___/\___/_/ /_/\__/ | |
| «»» | |
| rev_ansi = р»»» | |
| ____ __ | |
| _____ _____________(_) \| \ | |
| \___ \/ __ \___ \___ \ \ \_|\ \ | |
| \\\_\\\\\\\\\\ | |
| _\_\____/ \_\ \_\_\_\_ \_\ | |
| _\ \ ____ _____ \____ \ | |
| \__ \/ __ \/ _ \ \ | | \__\ | |
| _\ \ \ \ \__ \ \| | ___\\ | |
| \__/\_\ \_\___/\___| \_____\ | |
| «»» | |
mirror_ansi = [int((width-3)/2-len(f))*» » + f + » | » + r + int((width-3)/2-len(r))*» » для f,r в zip(ansi. split(«\n»), rev_ansi.split(«\n»))] | |
| возврат «\n».join(mirror_ansi) | |
| def print_header (текущая_дата, дата рождения, прошедшая_дата, число_дней, ширина): | |
| past_date_format = past_date.strftime(«%a %b %d, %Y») | |
| формат_даты_рождения = дата_рождения.strftime(«%a %b %d, %Y») | |
| current_date_format = current_date.strftime(«%a %b %d, %Y») | |
num_days_format = «{:,}».format(num_days. days) + » days» | |
| n_spaces = макс (1, интервал ((ширина-9)/2)) | |
| строка1 = n_spaces*» » + «Дата рождения» + n_spaces*» » | |
| печать («\n» + зеркало_события_заголовка (ширина)) | |
| печать (строка 1) | |
| n_spaces = max(2, int((ширина — 11 — 2*len(num_days_format))/2)) | |
| n_spaces_1 = макс (1, math.floor (0,5 * n_spaces)) | |
n_spaces_2 = макс. (1, n_spaces — n_spaces_1) | |
| строка2 = «Прошлое » + n_spaces_1*» » + num_days_format + n_spaces_2*» » + «|» + n_spaces_2*» » + num_days_format + n_spaces_1*» » + «Сегодня» | |
| печать (строка 2) | |
| строка3 = «<" + int((width-7)/2)*"-" + "|" + int((ширина-7)/2)*"-" + "> » | |
| печать (строка 3) | |
n_spaces_3 = max(1, math. floor(ширина/2 — len(формат_прошлой_даты) — len(формат_даты_рождения)/2)) | |
| n_spaces_4 = max(1, width — len(format_current_date) — len(format_date_format) — len(format_past_date_format) — n_spaces_3) | |
| строка4 = формат_прошлой_даты + n_spaces_3*» » + формат_даты_рождения + n_пробелов_4*» » + формат_текущей_даты | |
| печать (строка 4) | |
| def print_events (события, прошедшая_дата, ширина): | |
| исторические_события = события[‘исторические_события’] | |
| знаменитые_рождения = события[‘известные_рождения’] | |
| известные_смерти = события[‘известные_смерти’] | |
past_date_format = past_date. strftime(«%a %b %d, %Y») | |
| print(«\nВаши ЗЕРКАЛЬНЫЕ СОБЫТИЯ В этот день: » + past_date_format) | |
| , если длина (исторические_события) > 0: | |
| print(«\nИсторические события: «) | |
| для x в диапазоне (0, len (исторические_события)): | |
| печать (textwrap.fill (исторические_события [x], ширина = ширина, начальный_отступ = «-«, последующий_отступ = «»)) | |
| , если len(famous_births) > 0: | |
| print(«\nИзвестные рождения: «) | |
| для x в диапазоне (0, len(famous_births)): | |
print(textwrap. fill(famous_births[x], width = width, initial_indent = «-«, after_indent = «»)) | |
| , если len(famous_deaths) > 0: | |
| print(«\nИзвестные смерти: «) | |
| для x в диапазоне (0, len(famous_deaths)): | |
| print(textwrap.fill(famous_deaths[x], width = width, initial_indent = «-«, after_indent = «»)) | |
| def mirror_events (дата рождения, ширина): | |
| дата рождения = формат_дня рождения (дата рождения) | |
| текущая_дата = get_current_date() | |
| past_date, num_days = calculate_past_date (current_date, дата рождения) | |
| суп = запрос_в этот день (прошедшая_дата) | |
| # Получить события | |
| события = get_events(суп) | |
| если (ширина % 2 == 0): | |
| ширина = ширина — 1 | |
| print_header(текущая_дата, дата рождения, прошедшая_дата, число_дней, ширина) | |
| print_events(события, прошедшая_дата, ширина) | |
| , если __name__ == «__main__»: | |
| ################################################## ############################## | |
| импорт аргумента | |
parser = argparse.
|

com
1961) #
date(dt.today().год, dt.today().месяц, dt.today().день)
onthisday.com/date/’ + str(date.year) + ‘/’ + str(calendar.month_name[date.month]) + ‘/’ + str(date.day ) + ‘/’
replace(‘
split(«\n»), rev_ansi.split(«\n»))]
days) + » days»
(1, n_spaces — n_spaces_1)
floor(ширина/2 — len(формат_прошлой_даты) — len(формат_даты_рождения)/2))
strftime(«%a %b %d, %Y»)
fill(famous_births[x], width = width, initial_indent = «-«, after_indent = «»))