/isekaidol-stream-noti

이세계아이돌(이세돌) 트위치/아프리카 뱅온 및 방제, 카테고리 변경 알림.

Primary LanguageSvelte

Isekaidol Stream Noti

이세계아이돌(이세돌) 트위치/아프리카 뱅온 및 방제, 카테고리 변경 알림 서비스.
https://isekaidol-stream-noti.web.app/

Demo

기능

  • 이세계아이돌 멤버들의 트위치/아프리카 채널을 모니터링하여 아래 경우에 알림.
    (웹 페이지를 열어두지 않아도 됨.)
    • 방송이 켜짐.
    • 채널의 제목이 변경됨.
    • 방송 중 채널의 카테고리(게임)가 변경됨.
  • 웹 페이지에서 채널별 알림 구독 여부 설정 및 최근 정보 확인.
  • 웹 페이지에서 멤버별 디스코드 웹훅 등록.

PC:
PC Noti
Mobile:
Mobile Noti

사용 방법

  1. PC나 모바일에서 모-던 웹 브라우저로 사이트 접속.
    (애플 지원 안함.)
  2. 알림을 받을 멤버 카드 우측의 스위치를 켠다.
  3. 알림 권한을 허용할거냐는 팝업이 뜨면 허용한다.
  4. 로딩이 사라지면 사이트를 닫아둬도 된다.
    (PC에선 브라우저 실행은 필요하며 모바일은 상관 없음.)

텔레그램 채널

웹 알림 외에도 멤버별 텔레그램 채널(대화 불가)에서도 알림.

디스코드 웹훅

동일 내용을 디스코드 웹훅으로도 알림.

Discord Noti

트위터

트윗으로도 알림.

구조

flowchart BT
    U(User) -- 구독 설정 --> P(Web Page)
    P -- 방송 정보, 알림 표시 --> U
    
    P <-- 설정 저장/불러오기 --> S(Local Storage)
    
    P -- 구독 설정 전송 --> DB(Realtime Database)
    DB -- 방송 정보 전송 --> P

    DB -- 구독 변경 트리거 --> FN(Cloud Functions)
    FN -- 방송 정보 갱신 --> DB

    FN -- 알림 요청 --> END(Telegram, Twitter, Discord)
    FN -- 구독 설정, 알림 요청 --> M(Messaging)
    BP(Twitch, Afreeca) -- 방송 정보 제공 --> FN

    M -- 푸시 알림 --> P
Loading

사용한 것들

  • Svelte + Typescript.
  • Firebase Hosting, Realtime Database, Cloud Functions, Messaging, Storage.
  • Twitch, Telegram, Twitter API, Discord Webhook.

저작권

  • 팬덤 그림(public/image/fan_*.png) by 전투개구리(#출처에서 사용 허가 받음.)