Как стать автором
Обновить
0
0

Python Software Developer

Отправить сообщение
>Sestem76
Это как Abibas?
Всмысле нефильтрованные? В RSS те же новости что и в блоке «Лента новостей».
RSS разбирать гораздо проще и надежнее чем парсить html
В общем, можно придумать удобный для себя способ узнавать о новостях.

Это можно было сделать гораздо проще с помощью RSS — практически любой новостной сайт отдает свою ленту в RSS.

Вот так
for i in range(len(news)):
    if news[i].find('span', class_='time2 time3') is not None:
        new_news.append(news[i].text)

никто не пишет, в пайтоне это делают так:

for news_item in news:
    if news_item.find('span', class_='time2 time3') is not None:
        new_news.append(news_item.text)


А если кроме самого элемента нужно иметь и доступ к индексу, то пользуются enumerate:
for i, news_item in enumerate(news):
    print(i, news_item)
Первый шаг не нужен, clubhouse-py может зарегистрировать нового пользователя самостоятельно.

На линуксе послушать комнаты не получится, так как под линукс нет agora-python-sdk. Но, можно воспользоваться демкой от агоры webdemo.agora.io/agora-web-showcase/examples/LargeGroupVideoChat-Web

Чтобы упростить заход в чат, можно сделать так:
# Check for the voice level.
if RTC:
    token = channel_info['token']
    RTC.joinChannel(token, channel_name, "", int(user_id))
else:
    print("[!] Agora SDK is not installed.")
    print("    You may not speak or listen to the conversation.")
    # Добавляем ссылку на сайт с параметрами
    print('    But you can use this link:')
    print(f'    https://webdemo.agora.io/agora-web-showcase/examples/LargeGroupVideoChat-Web/?appID=some_app_id&channel={channel_name}&token={channel_info["token"]}&mode=live&codec=h264&role=audience')
    print('    user_id: ', user_id)


Теперь при выборе чата, cli будет не только говорить что Agora SDK не установлено, но также предлагать перейти по ссылке и послушать беседу в браузере.

Соответсвенно заходим в cli, выбираем комнату, копируем свой user_id, переходим по ссылке, вставляем user_id в поле «Advanced settings -> UID» и нажимаем «Join»
В статье есть и про мотивацию почему автор не остановился вовремя.

Для джуниора, я бы сказал, это даже хорошо. А вот для сениора…

Это было больно, но, пожалуй, заслужено. Ладно, я тебе покажу, кто тут джуниор.
По поводу части с pattern-matching:
Так как указано в статье в Python обычно не пишут. Python-разработчик написал бы что-то такое:
def serialize(user_status: UserStatus) -> str:
    mapping = {
        UserStatus.PENDING: 'Pending',
        UserStatus.ACTIVE: 'Active',
        UserStatus.INACTIVE: 'Inactive',
        UserStatus.DELETED: 'Deleted',
    }
    return mapping[user_status]


Соотвественно если вдруг в функцию будет передано значение, которого нет в UserStatus — будет исключение.

Информация

В рейтинге
Не участвует
Откуда
Киевская обл., Украина
Зарегистрирован
Активность