Renaming everything to RosterHash.

This commit is contained in:
Eduardo_Figueroa 2025-09-09 09:36:58 -07:00
parent 981b704872
commit 329f2bfea6
9 changed files with 33 additions and 33 deletions

View file

@ -1,8 +1,8 @@
# <div align="center"><img src="gametime_logo.png" alt="GameTime Logo" width="200"/></div> # <div align="center"><img src="rosterhash_logo.png" alt="RosterHash Logo" width="200"/></div>
<div align="center"> <div align="center">
# 🏈 GameTime # 🏈 RosterHash
**Your Fantasy Football Command Center** **Your Fantasy Football Command Center**
@ -14,11 +14,11 @@
</div> </div>
## What is GameTime? ## What is RosterHash?
GameTime is your all-in-one fantasy football dashboard that connects to your Sleeper account to give you an overview of every league, every player, over a calendar view. RosterHash is your all-in-one fantasy football dashboard that connects to your Sleeper account to give you an overview of every league, every player, over a calendar view.
You can check it out here: [gametime.edfig.dev](https://gametime.edfig.dev) You can check it out here: [rosterhash.edfig.dev](https://rosterhash.edfig.dev)
### Features ### Features

10
app.py
View file

@ -10,7 +10,7 @@ from config import Config
# Force unbuffered output for Docker logs # Force unbuffered output for Docker logs
os.environ['PYTHONUNBUFFERED'] = '1' os.environ['PYTHONUNBUFFERED'] = '1'
print("=== GameTime Starting ===", flush=True) print("=== RosterHash Starting ===", flush=True)
print(f"=== Version: {Config.VERSION} ===", flush=True) print(f"=== Version: {Config.VERSION} ===", flush=True)
app = Flask(__name__) app = Flask(__name__)
@ -367,17 +367,17 @@ def refresh_data(username, week):
return jsonify({'error': str(e)}), 500 return jsonify({'error': str(e)}), 500
# Static file routes # Static file routes
@app.route('/gametime_logo.png') @app.route('/rosterhash_logo.png')
def logo(): def logo():
"""Serve the logo file""" """Serve the logo file"""
return send_file('gametime_logo.png', mimetype='image/png') return send_file('rosterhash_logo.png', mimetype='image/png')
@app.route('/favicon.ico') @app.route('/favicon.ico')
def favicon(): def favicon():
"""Serve the favicon""" """Serve the favicon"""
return send_file('gametime_logo.png', mimetype='image/png') return send_file('rosterhash_logo.png', mimetype='image/png')
if __name__ == '__main__': if __name__ == '__main__':
print("DEBUG: Starting Flask app on 0.0.0.0:5000", flush=True) print("DEBUG: Starting Flask app on 0.0.0.0:5000", flush=True)
print(f"DEBUG: GameTime {app.config['VERSION']} ready!", flush=True) print(f"DEBUG: RosterHash {app.config['VERSION']} ready!", flush=True)
app.run(host='0.0.0.0', port=5000, debug=True) app.run(host='0.0.0.0', port=5000, debug=True)

View file

@ -1,6 +1,6 @@
services: services:
gametime: rosterhash:
image: gametime:latest image: rosterhash:latest
ports: ports:
- "5000:5000" - "5000:5000"
restart: unless-stopped restart: unless-stopped

View file

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 190 KiB

View file

@ -1,6 +1,6 @@
{ {
"name": "GameTime - Fantasy Football Dashboard", "name": "RosterHash - Fantasy Football Dashboard",
"short_name": "GameTime", "short_name": "RosterHash",
"description": "View your Sleeper fantasy football leagues and player schedules", "description": "View your Sleeper fantasy football leagues and player schedules",
"start_url": "/", "start_url": "/",
"display": "standalone", "display": "standalone",
@ -9,7 +9,7 @@
"orientation": "portrait-primary", "orientation": "portrait-primary",
"icons": [ "icons": [
{ {
"src": "/gametime_logo.png", "src": "/rosterhash_logo.png",
"sizes": "any", "sizes": "any",
"type": "image/png", "type": "image/png",
"purpose": "any maskable" "purpose": "any maskable"

View file

@ -1,20 +1,20 @@
// GameTime Service Worker // RosterHash Service Worker
const CACHE_NAME = 'gametime-v1.0.0'; const CACHE_NAME = 'rosterhash-v1.0.0';
const STATIC_CACHE = [ const STATIC_CACHE = [
'/', '/',
'/static/style.css', '/static/style.css',
'/static/manifest.json', '/static/manifest.json',
'/gametime_logo.png', '/rosterhash_logo.png',
'/favicon.ico' '/favicon.ico'
]; ];
// Install event - cache static resources // Install event - cache static resources
self.addEventListener('install', event => { self.addEventListener('install', event => {
console.log('GameTime SW: Installing...'); console.log('RosterHash SW: Installing...');
event.waitUntil( event.waitUntil(
caches.open(CACHE_NAME) caches.open(CACHE_NAME)
.then(cache => { .then(cache => {
console.log('GameTime SW: Caching static resources'); console.log('RosterHash SW: Caching static resources');
return cache.addAll(STATIC_CACHE); return cache.addAll(STATIC_CACHE);
}) })
.then(() => self.skipWaiting()) .then(() => self.skipWaiting())
@ -23,13 +23,13 @@ self.addEventListener('install', event => {
// Activate event - clean up old caches // Activate event - clean up old caches
self.addEventListener('activate', event => { self.addEventListener('activate', event => {
console.log('GameTime SW: Activating...'); console.log('RosterHash SW: Activating...');
event.waitUntil( event.waitUntil(
caches.keys().then(cacheNames => { caches.keys().then(cacheNames => {
return Promise.all( return Promise.all(
cacheNames.map(cacheName => { cacheNames.map(cacheName => {
if (cacheName !== CACHE_NAME) { if (cacheName !== CACHE_NAME) {
console.log('GameTime SW: Deleting old cache:', cacheName); console.log('RosterHash SW: Deleting old cache:', cacheName);
return caches.delete(cacheName); return caches.delete(cacheName);
} }
}) })
@ -57,7 +57,7 @@ self.addEventListener('fetch', event => {
return new Response(` return new Response(`
<html> <html>
<head> <head>
<title>GameTime - Offline</title> <title>RosterHash - Offline</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head> </head>
<body style="font-family: sans-serif; text-align: center; padding: 50px;"> <body style="font-family: sans-serif; text-align: center; padding: 50px;">

View file

@ -3,10 +3,10 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}GameTime{% endblock %}</title> <title>{% block title %}RosterHash{% endblock %}</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}"> <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<link rel="icon" type="image/png" href="/favicon.ico"> <link rel="icon" type="image/png" href="/favicon.ico">
<link rel="apple-touch-icon" href="/gametime_logo.png"> <link rel="apple-touch-icon" href="/rosterhash_logo.png">
<link rel="manifest" href="{{ url_for('static', filename='manifest.json') }}"> <link rel="manifest" href="{{ url_for('static', filename='manifest.json') }}">
<meta name="theme-color" content="#8b7ff5"> <meta name="theme-color" content="#8b7ff5">
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
@ -56,7 +56,7 @@
<div class="sidebar-section"> <div class="sidebar-section">
<h3>About This WebApp</h3> <h3>About This WebApp</h3>
<div class="about-text"> <div class="about-text">
<p>GameTime gives you an at-a-glance view of your Sleeper leagues player's schedules and status.</p> <p>RosterHash gives you an at-a-glance view of your Sleeper leagues player's schedules and status.</p>
<p><strong>How to use:</strong></p> <p><strong>How to use:</strong></p>
<ul> <ul>
<li>Enter your Sleeper username on the home page</li> <li>Enter your Sleeper username on the home page</li>
@ -80,7 +80,7 @@
<!-- App version footer --> <!-- App version footer -->
<footer class="app-footer"> <footer class="app-footer">
<div class="version">GameTime v{{ app_version }}</div> <div class="version">RosterHash v{{ app_version }}</div>
</footer> </footer>
<!-- Set theme based on server-side session --> <!-- Set theme based on server-side session -->
@ -178,10 +178,10 @@
window.addEventListener('load', function() { window.addEventListener('load', function() {
navigator.serviceWorker.register('/static/sw.js') navigator.serviceWorker.register('/static/sw.js')
.then(function(registration) { .then(function(registration) {
console.log('GameTime SW: Registered successfully'); console.log('RosterHash SW: Registered successfully');
}) })
.catch(function(error) { .catch(function(error) {
console.log('GameTime SW: Registration failed:', error); console.log('RosterHash SW: Registration failed:', error);
}); });
}); });
} }

View file

@ -6,7 +6,7 @@
<!-- Header with user name and week navigation --> <!-- Header with user name and week navigation -->
<header class="dashboard-header"> <header class="dashboard-header">
<h1>GameTime for {{ user.display_name }}</h1> <h1>RosterHash for {{ user.display_name }}</h1>
<div class="week-nav"> <div class="week-nav">
<a href="/{{ user.username }}/{{ week - 1 }}" class="week-btn">&larr; Week {{ week - 1 }}</a> <a href="/{{ user.username }}/{{ week - 1 }}" class="week-btn">&larr; Week {{ week - 1 }}</a>
<span class="current-week">Week {{ week }}</span> <span class="current-week">Week {{ week }}</span>

View file

@ -1,12 +1,12 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block title %}GameTime - Enter Username{% endblock %} {% block title %}RosterHash - Enter Username{% endblock %}
{% block content %} {% block content %}
<div class="welcome-container"> <div class="welcome-container">
<div class="brand"> <div class="brand">
<img src="/gametime_logo.png" alt="GameTime Logo" class="app-logo"> <img src="/rosterhash_logo.png" alt="RosterHash Logo" class="app-logo">
<h1 class="app-name">GameTime</h1> <h1 class="app-name">RosterHash</h1>
<div class="tagline">* * * * 4,7,1</div> <div class="tagline">* * * * 4,7,1</div>
</div> </div>
<p>Enter your Sleeper username to get your league schedules.</p> <p>Enter your Sleeper username to get your league schedules.</p>