import 'package:flutter/material.dart'; /// Twitch API client ID. const clientId = String.fromEnvironment('CLIENT_ID'); /// Twitch GQL client ID (web player, used for playback access tokens). const twitchGqlClientId = 'kimne78kx3ncx6brgo4mv6wki5h1ko'; /// SharedPreferences key for the per-channel last-selected stream quality. /// A saved variant that doesn't exist on the target channel (e.g. 1080p on a /// source-only channel) falls back to Auto via the quality-list lookup. String lastStreamQualityKey(String userLogin) => 'last_stream_quality_$userLogin'; /// Legacy global key. Cleared on startup during SharedPreferences init. const kLegacyLastStreamQualityKey = 'last_stream_quality'; /// Twitch API client secret. const secret = String.fromEnvironment('SECRET'); /// BTTV emotes with zero width to allow for overlaying other emotes. const zeroWidthEmotes = [ 'SoSnowy', 'IceCold', 'SantaHat', 'TopHat', 'ReinDeer', 'CandyCane', 'cvMask', 'cvHazmat', ]; /// Regex for matching strings that contain lower or upper case English characters. final regexEnglish = RegExp(r'[a-zA-Z]'); /// Regex for matching strings that contain only numeric characters. final regexNumbersOnly = RegExp(r'^\d+$'); /// Regex for matching URLs and file names in text. final regexLink = RegExp( r'(? chatColorValues = { 'blue': Color(0xFF0000FF), 'blue_violet': Color(0xFF8A2BE2), 'cadet_blue': Color(0xFF5F9EA0), 'chocolate': Color(0xFFD2691E), 'coral': Color(0xFFFF7F50), 'dodger_blue': Color(0xFF1E90FF), 'firebrick': Color(0xFFB22222), 'golden_rod': Color(0xFFDAA520), 'green': Color(0xFF008000), 'hot_pink': Color(0xFFFF69B4), 'orange_red': Color(0xFFFF4500), 'red': Color(0xFFFF0000), 'sea_green': Color(0xFF2E8B57), 'spring_green': Color(0xFF00FF7F), 'yellow_green': Color(0xFF9ACD32), };