
    ui/                        S SK r S SKrS SKJrJrJrJrJrJrJ	r	  S SK
Jr  SSKJr  SSKJr  \" S\5      r\ R$                  " S5      r\ R$                  " S	5      rS
rSr\S-   r\S-   r\R3                  S5      S 5       r\R3                  S5      S 5       r\R3                  S5      S 5       r\R3                  S5      S 5       r\R3                  S5      S 5       r\R3                  S5      S 5       rg)    N)	Blueprintrender_templateredirectsessionrequesturl_forrender_template_string)OAuth2Session   )get_db)cache_avatarmainDISCORD_CLIENT_IDDISCORD_CLIENT_SECRETz https://xorgus.ddns.net/callbackzhttps://discord.com/apiz/oauth2/authorizez/oauth2/token/c                      [        S5      $ )Nz
index.html)r        )D:\user\Documents\code\html\app\routes.pyindexr      s    <((r   z/favicon.svgc                  ,    [         R                  S5      $ )Nzfavicon.svg)main_bpsend_static_filer   r   r   faviconr      s     ##M22r   z/loginc                      [        [        [        S/S9n U R                  [        5      u  pU[
        S'   [        U5      $ )Nidentify)redirect_uriscopeoauth_state)r
   	CLIENT_IDREDIRECT_URIauthorization_urlAUTHORIZATION_BASE_URLr   r   )discordr"   states      r   loginr&      s=    ILUG&889OP"GM%&&r   z	/callbackc                      [        [        [        [        R                  " S5      S9n U R                  [        [        [        R                  S9nU[        S'   U R	                  [        S-   5      R                  5       n[        US   5      [        S'   US   [        S'   [        US   UR	                  S	5      5      [        S	'    [        5       nUR!                  5       nUR#                  S[        S   45        UR%                  5       (       d+  UR#                  S[        S   [        S   [        S	   45        O*UR#                  S[        S   [        S	   [        S   45        UR'                  5         [+        S5      $ ! [         a  nS
U S3s S nA$ S nAff = f! [         a  n[)        SU 35         S nANES nAff = f)Nr   )r   r%   )client_secretauthorization_responseoauth_tokenz
/users/@meiduser_idusernameavatarzAuth Error: z <a href='/'>Back</a>%SELECT * FROM users WHERE user_id = ?zJINSERT INTO users (user_id, balance, username, avatar) VALUES (?, 0, ?, ?)z;UPDATE users SET username = ?, avatar = ? WHERE user_id = ?zDB Init Error: r   )r
   r    r!   r   getfetch_token	TOKEN_URLCLIENT_SECRETr   urlAPI_BASE_URLjsonintr   	Exceptionr   cursorexecutefetchonecommitprintr   )r$   token	user_dataeconncurs         r   callbackrC   $   s   7	GKKXeLfg##I]cjcncn#o!&KK| ;<AAC	 41	'
3
 )4)--:QR
%xkkm;gi>P=RS||~~KKd	*GJ,?ARSU KKU
+WX->	@RSU C=%  7aS 5667  %s#$$%s7   CE? B.F ?
F	FFF
F>&F99F>z/logoutc                  B    [         R                  " 5         [        S5      $ )Nr   )r   clearr   r   r   r   logoutrF   E   s    MMOC=r   z/view/<seed>c                    [        5       nUR                  5       nUR                  SU 45        UR                  5       nU(       d  g[	        U5      nUS   nSU 3nSn UR                  SU45        UR                  5       nU(       a5  [	        U5      n	SU	;   a  U	S   (       a  U	S   nSU	;   a  U	S   (       a  U	S   n[        U S S	 S
5      n
/ SQnX[        U5      -     nUS   R                  5       nUS;   a  SOSn[        SUS    SU SU SUS    SUS    SU SUS    SUS    SUS   (       a  US   OS SU SU S35      $ ! [
         a     Nf = f) Nz"SELECT * FROM cards WHERE seed = ?z<h1>404 Not Found</h1>owner_idzID: z/static/avatars/default.pngr/   r-   r.         )u   🗿u   💀u   🤡u   👽u   👾u   🤖u   👻u   💩u   👺u   👹u   🧢u   🕶️u   🎩u   🦠u   🧬u   🧠u   👁️u   👄u   🦴u   💣u   🧨u   🔪u   🗡️u   ⚔️u   🛡️u   🪓u   🔫u   🩸u   💊u   💉u   🚬u   ⚰️u   🪦u   🧯u   🔨u   🔧u   🪚u   ⚓u   ⚖️u   🚀u   🛸u   🪐u   🌑u   ☀️u   ⚡u   🔥u   ❄️u   🌪️u   🌊u   🔮u   🧿u   ⚗️u   🕯️u   🔦u   🧭u   🗝️u   🚪u   💎u   👑u   💍u   🏆u   🥇u   💰u   💸u   💵u   💳u   🎰u   🎲u   🎱u   🎳u   🎮u   🕹️u   🎫u   🎁u   📦u   💻u   🖥️u   💾u   💿u   📼u   📷u   📹u   🎥u   📺u   📻u   📱u   📟u   📠u   🔋u   🔌u   📡u   🚗u   🚓u   🚜u   🏎️u   🍆u   🍑u   🍌u   🥑u   🌶️u   🌽u   🍄u   🌵u   🌲u   🍂u   🍔u   🍕u   🌭u   🌮u   🍣u   🍩u   🍪u   🍺u   🍷u   🥃u   🧂u   🍿u   🧀u   🍗u   🥩u   🍤u   🦞u   🦀u   🦍u   🦧u   🐕u   🐈u   🐅u   🦖u   🦕u   🦈u   🐊u   🐍u   🦅u   🦉u   🦇u   🦄u   🦆u   🦚u   🦜u   🦩u   🐀u   🐁u   🚽u   🧻u   🪠u   🧼u   🧽u   🧱u   🧸u   🪑u   🛌u   🛒u   🚨u   🛑u   🚩u   🏁u   🚫u   ⚠️u   💢u   💤u   💥u   💦rarity)	legendaryepicrarez!<div class="shimmer-layer"></div> a  
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <link rel="icon" type="image/svg+xml" href="/favicon.svg">
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Xorgus Asset #card_ida  </title>
        <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;500;700&family=Bad+Script&display=swap" rel="stylesheet">
        <style>
            :root { --bg: #050505; --glass-border: rgba(255, 255, 255, 0.1); }
            body { background: #050505; color: #fff; font-family: 'Space Grotesk', sans-serif; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; margin: 0; background: radial-gradient(circle at 50% 0%, #1a1a2e 0%, #000 80%); }
            
            .card-wrapper { width: 300px; height: 480px; position: relative; }
            .card { width: 100%; height: 100%; border-radius: 24px; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,0.1); box-shadow: 0 25px 50px -12px rgba(0,0,0,0.6); display: flex; flex-direction: column; }
            .card { background: linear-gradient(135deg, #2b2b38 0%, #101015 100%); }
            
            @keyframes shimmerMove { 0% { transform: translateX(-300%); } 100% { transform: translateX(400%); } }
            .shimmer-layer {
                position: absolute; top: 0; bottom: 0; width: 50%;
                background: linear-gradient(to right, transparent 0%, var(--shimmer-color, rgba(255,255,255,0.05)) 50%, transparent 100%);
                filter: blur(25px); opacity: 0.8; pointer-events: none; z-index: 10;
                transform: translateX(-300%);
                animation: shimmerMove 3.5s infinite linear;
                mix-blend-mode: overlay;
            }

            .card-header { padding: 20px; display: flex; justify-content: space-between; z-index: 5; position: relative; }
            .rarity-badge { font-size: 0.65rem; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; padding: 5px 10px; border-radius: 12px; }
            
            .card-art { height: 180px; display: flex; align-items: center; justify-content: center; font-size: 7rem; text-shadow: 0 10px 30px rgba(0,0,0,0.5); z-index: 5; position: relative; }
            
            .card-body { padding: 0 20px; flex: 1; z-index: 5; position: relative; }
            .stats-row { display: flex; gap: 10px; margin-bottom: 20px; }
            .stat { background: rgba(255,255,255,0.05); padding: 8px; border-radius: 8px; flex: 1; text-align: center; border: 1px solid rgba(255,255,255,0.05); }
            .stat span { display: block; }
            
            .signature { font-family: 'Bad Script', cursive; font-size: 1.8rem; color: #e5e5e5; transform: rotate(-3deg); text-align: center; margin-top: 10px; text-shadow: 0 2px 4px rgba(0,0,0,0.8); }
            
            .card-footer { padding: 15px 20px; background: rgb(16, 16, 22); border-top: 1px solid rgb(22 22 22); display: flex; align-items: center; gap: 10px; z-index: 5; position: relative; }
            .owner-avatar { width: 32px; height: 32px; border-radius: 50%; }
            
            .legendary { border-color: rgba(251, 191, 36, 0.5); box-shadow: 0 0 30px rgba(251, 191, 36, 0.15); }
            .legendary .shimmer-layer { --shimmer-color: rgba(251, 191, 36, 0.4); animation-duration: 3s; }
            .legendary .rarity-badge { background: #fbbf24; color: #000; }
            
            .epic { border-color: rgba(192, 132, 252, 0.5); }
            .epic .shimmer-layer { --shimmer-color: rgba(192, 132, 252, 0.35); animation-duration: 4s; }
            .epic .rarity-badge { background: #c084fc; color: #fff; }
            
            .rare { border-color: rgba(96, 165, 250, 0.5); }
            .rare .shimmer-layer { --shimmer-color: rgba(96, 165, 250, 0.3); animation-duration: 5s; }
            .rare .rarity-badge { background: #60a5fa; color: #000; }
            
            .uncommon .rarity-badge { background: #4ade80; color: #000; }
            .common .rarity-badge { background: #333; color: #888; }
        </style>
    </head>
    <body>
        <div class="card-wrapper">
            <div class="card z">
                zZ
                <div class="card-header">
                    <span class="rarity-badge">z_</span>
                    <span style="font-family:monospace; color:#555; font-size:0.8rem">#zE</span>
                </div>
                <div class="card-art">z</div>
                <div class="card-body">
                    <div class="stats-row">
                        <div class="stat"><span style="font-size:0.6rem; color:#888;">POWER</span><b>powerzo</b></div>
                        <div class="stat"><span style="font-size:0.6rem; color:#888;">LUCK</span><b>luckzR%</b></div>
                    </div>
                    <div class="signature">	signaturezf</div>
                </div>
                <div class="card-footer">
                    <img src="a  " class="owner-avatar">
                    <div style="display:flex; flex-direction:column">
                        <span style="font-size:0.6rem; color:#666; line-height:1">OWNER</span>
                        <span style="font-size:0.8rem; font-weight:700">u   </span>
                    </div>
                </div>
            </div>
        </div>
        <p style="margin-top:20px; color:#4ade80; font-size:0.9rem">✓ Blockchain Verified Asset</p>
    </body>
    </html>
    )
r   r9   r:   r;   dictr8   r7   lenlowerr	   )seedrA   rB   card_rowcardrH   
owner_nameowner_avataruser_rowr?   art_seedemojis
main_emojirarity_classshimmer_divs                  r   	view_cardrb   K   s   8D
++-CKK4tg>||~H'>DJHz"J0L;h[I<<>XIY&9Z+@yYcOd*
 9$8)<(2
 48R HF& 3v;./J>'')L9EIf9f5lnK " ' #9o. 5/j +^ , 004X/? @XX\]fXgWh i''1l 3f gkkrfset ueeijpeqdr s,AEkARD,=XZ+[ \  ,n -I JT U]V# V	 V	E  s   AE 
EE) ostimeflaskr   r   r   r   r   r   r	   requests_oauthlibr
   utils.dbr   utils.avatarsr   __name__r   getenvr    r3   r!   r5   r#   r2   router   r   r&   rC   rF   rb   r   r   r   <module>rl      s   	  i i i +  '
FH
% II)*			121(%(;; ?*	s) ) 	~3 3 	x' ' 	{ @ 	y 
 	~T	 T	r   