Rename AdventureLog to Voyage and add fork attribution
- Replace all AdventureLog references with Voyage across ~102 files (7 case variants: AdventureLog, adventurelog, Adventurelog, ADVENTURELOG, AdventUrelog, AdventureLOG, adventure-log, adventure_log) - Rename brand, static, and documentation assets to use voyage naming - Rename install_adventurelog.sh → install_voyage.sh - Update README.md and voyage_overview.md to credit AdventureLog as the upstream project and Sean Morley as its original creator
This commit is contained in:
@@ -196,6 +196,6 @@ admin.site.register(Activity, ActivityAdmin)
|
||||
admin.site.register(CollectionItineraryItem, CollectionItineraryItemAdmin)
|
||||
admin.site.register(CollectionItineraryDay)
|
||||
|
||||
admin.site.site_header = 'AdventureLog Admin'
|
||||
admin.site.site_title = 'AdventureLog Admin Site'
|
||||
admin.site.index_title = 'Welcome to AdventureLog Admin Page'
|
||||
admin.site.site_header = 'Voyage Admin'
|
||||
admin.site.site_title = 'Voyage Admin Site'
|
||||
admin.site.index_title = 'Welcome to Voyage Admin Page'
|
||||
|
||||
@@ -129,7 +129,7 @@ def _infer_addresstype(type_):
|
||||
def search_osm(query):
|
||||
try:
|
||||
url = f"https://nominatim.openstreetmap.org/search?q={query}&format=jsonv2"
|
||||
headers = {'User-Agent': 'AdventureLog Server'}
|
||||
headers = {'User-Agent': 'Voyage Server'}
|
||||
response = requests.get(url, headers=headers, timeout=(2, 5))
|
||||
response.raise_for_status()
|
||||
data = response.json()
|
||||
@@ -370,7 +370,7 @@ def reverse_geocode(lat, lon, user):
|
||||
|
||||
def reverse_geocode_osm(lat, lon, user):
|
||||
url = f"https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat={lat}&lon={lon}"
|
||||
headers = {'User-Agent': 'AdventureLog Server'}
|
||||
headers = {'User-Agent': 'Voyage Server'}
|
||||
connect_timeout = 1
|
||||
read_timeout = 5
|
||||
|
||||
|
||||
@@ -481,7 +481,7 @@ class CollectionViewSet(viewsets.ModelViewSet):
|
||||
collection = self.get_object()
|
||||
|
||||
export_data = {
|
||||
'version': getattr(settings, 'ADVENTURELOG_RELEASE_VERSION', 'unknown'),
|
||||
'version': getattr(settings, 'VOYAGE_RELEASE_VERSION', 'unknown'),
|
||||
# Omit export_date to keep template-friendly exports (no dates)
|
||||
'collection': {
|
||||
'id': str(collection.id),
|
||||
|
||||
@@ -17,7 +17,7 @@ class GenerateDescription(viewsets.ViewSet):
|
||||
|
||||
# User-Agent header required by Wikipedia API, Accept-Language patched in per request
|
||||
BASE_HEADERS = {
|
||||
'User-Agent': f'AdventureLog/{getattr(settings, "ADVENTURELOG_RELEASE_VERSION", "unknown")}'
|
||||
'User-Agent': f'Voyage/{getattr(settings, "VOYAGE_RELEASE_VERSION", "unknown")}'
|
||||
}
|
||||
DEFAULT_LANGUAGE = "en"
|
||||
LANGUAGE_PATTERN = re.compile(r"^[a-z0-9-]{2,12}$", re.IGNORECASE)
|
||||
|
||||
@@ -41,7 +41,7 @@ class BackupViewSet(viewsets.ViewSet):
|
||||
|
||||
# Build export data structure
|
||||
export_data = {
|
||||
'version': settings.ADVENTURELOG_RELEASE_VERSION,
|
||||
'version': settings.VOYAGE_RELEASE_VERSION,
|
||||
'export_date': datetime.now().isoformat(),
|
||||
'user_email': user.email,
|
||||
'user_username': user.username,
|
||||
@@ -390,7 +390,7 @@ class BackupViewSet(viewsets.ViewSet):
|
||||
# Return ZIP file as response
|
||||
with open(tmp_file.name, 'rb') as zip_file:
|
||||
response = HttpResponse(zip_file.read(), content_type='application/zip')
|
||||
filename = f"adventurelog_backup_{user.username}_{datetime.now().strftime('%Y%m%d_%H%M%S')}.zip"
|
||||
filename = f"voyage_backup_{user.username}_{datetime.now().strftime('%Y%m%d_%H%M%S')}.zip"
|
||||
response['Content-Disposition'] = f'attachment; filename="{filename}"'
|
||||
|
||||
# Clean up
|
||||
|
||||
@@ -198,7 +198,7 @@ class ContentImageViewSet(viewsets.ModelViewSet):
|
||||
return Response({"error": result}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
try:
|
||||
headers = {'User-Agent': 'AdventureLog/1.0 (Image Proxy)'}
|
||||
headers = {'User-Agent': 'Voyage/1.0 (Image Proxy)'}
|
||||
max_redirects = 3
|
||||
current_url = image_url
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ class RecommendationsViewSet(viewsets.ViewSet):
|
||||
permission_classes = [IsAuthenticated]
|
||||
OVERPASS_URL = "https://overpass-api.de/api/interpreter"
|
||||
NOMINATIM_URL = "https://nominatim.openstreetmap.org/search"
|
||||
HEADERS = {'User-Agent': 'AdventureLog Server'}
|
||||
HEADERS = {'User-Agent': 'Voyage Server'}
|
||||
|
||||
# Quality thresholds
|
||||
MIN_GOOGLE_RATING = 3.0 # Minimum rating to include
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
"""
|
||||
AdventureLog Server settings
|
||||
Voyage Server settings
|
||||
|
||||
Reference:
|
||||
- Django settings: https://docs.djangoproject.com/en/stable/ref/settings/
|
||||
@@ -235,7 +235,7 @@ AUTH_USER_MODEL = 'users.CustomUser'
|
||||
ACCOUNT_ADAPTER = 'users.adapters.CustomAccountAdapter'
|
||||
INVITATIONS_ADAPTER = ACCOUNT_ADAPTER
|
||||
INVITATIONS_ACCEPT_INVITE_AFTER_SIGNUP = True
|
||||
INVITATIONS_EMAIL_SUBJECT_PREFIX = 'AdventureLog: '
|
||||
INVITATIONS_EMAIL_SUBJECT_PREFIX = 'Voyage: '
|
||||
SOCIALACCOUNT_ADAPTER = 'users.adapters.CustomSocialAccountAdapter'
|
||||
ACCOUNT_SIGNUP_FORM_CLASS = 'users.form_overrides.CustomSignupForm'
|
||||
|
||||
@@ -365,10 +365,10 @@ LOGGING = {
|
||||
# ---------------------------------------------------------------------------
|
||||
PUBLIC_URL = getenv('PUBLIC_URL', 'http://localhost:8000')
|
||||
|
||||
# ADVENTURELOG_CDN_URL = getenv('ADVENTURELOG_CDN_URL', 'https://cdn.adventurelog.app')
|
||||
# VOYAGE_CDN_URL = getenv('VOYAGE_CDN_URL', 'https://cdn.voyage.app')
|
||||
|
||||
# Major release version of AdventureLog, not including the patch version date.
|
||||
ADVENTURELOG_RELEASE_VERSION = 'v0.12.0'
|
||||
# Major release version of Voyage, not including the patch version date.
|
||||
VOYAGE_RELEASE_VERSION = 'v0.12.0'
|
||||
|
||||
# https://github.com/dr5hn/countries-states-cities-database/tags
|
||||
COUNTRY_REGION_JSON_VERSION = 'v3.0'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Periodic sync runner for AdventureLog.
|
||||
Periodic sync runner for Voyage.
|
||||
Runs sync_visited_regions management command every 60 seconds.
|
||||
Managed by supervisord to ensure it inherits container environment variables.
|
||||
"""
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="description" content="AdventureLog API Server" />
|
||||
<meta name="description" content="Voyage API Server" />
|
||||
<link rel="icon" href="/static/favicon.png" />
|
||||
<meta name="author" content="Sean Morley" />
|
||||
<title>AdventureLog API Server</title>
|
||||
<title>Voyage API Server</title>
|
||||
|
||||
<!-- Bootstrap 5 CSS -->
|
||||
<link
|
||||
@@ -66,7 +66,7 @@
|
||||
<!-- Navbar -->
|
||||
<nav class="navbar navbar-expand-lg">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="/">AdventureLog API</a>
|
||||
<a class="navbar-brand" href="/">Voyage API</a>
|
||||
<button
|
||||
class="navbar-toggler"
|
||||
type="button"
|
||||
@@ -81,7 +81,7 @@
|
||||
<li class="nav-item">
|
||||
<a
|
||||
class="nav-link"
|
||||
href="http://adventurelog.app"
|
||||
href="http://voyage.app"
|
||||
target="_blank"
|
||||
>
|
||||
Documentation
|
||||
@@ -90,7 +90,7 @@
|
||||
<li class="nav-item">
|
||||
<a
|
||||
class="nav-link"
|
||||
href="https://github.com/seanmorley15/AdventureLog"
|
||||
href="https://github.com/seanmorley15/Voyage"
|
||||
target="_blank"
|
||||
>
|
||||
Source Code
|
||||
@@ -107,7 +107,7 @@
|
||||
<!-- Hero Section -->
|
||||
<div class="hero">
|
||||
<div class="container">
|
||||
<h1><i class="bi bi-map"></i> AdventureLog API</h1>
|
||||
<h1><i class="bi bi-map"></i> Voyage API</h1>
|
||||
<p>
|
||||
The backend powering your travels — flexible, powerful, and open
|
||||
source.
|
||||
@@ -149,11 +149,11 @@
|
||||
<footer class="text-center text-muted py-4">
|
||||
Open source with ❤️ by
|
||||
<a href="https://seanmorley.com" target="_blank">Sean Morley</a> • View on
|
||||
<a href="https://github.com/seanmorley15/AdventureLog" target="_blank"
|
||||
<a href="https://github.com/seanmorley15/Voyage" target="_blank"
|
||||
>GitHub</a
|
||||
>
|
||||
•
|
||||
<a href="https://adventurelog.app" target="_blank">adventurelog.app</a>
|
||||
<a href="https://voyage.app" target="_blank">voyage.app</a>
|
||||
</footer>
|
||||
|
||||
<!-- Bootstrap JS -->
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %} {% block content %}
|
||||
<!-- Main jumbotron for a primary marketing message or call to action -->
|
||||
<div class="jumbotron">
|
||||
<h1>AdventureLog API Server</h1>
|
||||
<h1>Voyage API Server</h1>
|
||||
<p>
|
||||
<a class="btn btn-primary btn-lg" href="/admin" role="button">Admin Site</a>
|
||||
<a
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>You’re Invited to AdventureLog</title>
|
||||
<title>You’re Invited to Voyage</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
@@ -65,29 +65,29 @@
|
||||
<body>
|
||||
<div class="container">
|
||||
<img
|
||||
src="https://adventurelog.app/adventurelog.png"
|
||||
alt="AdventureLog"
|
||||
src="https://voyage.app/voyage.png"
|
||||
alt="Voyage"
|
||||
class="logo"
|
||||
/>
|
||||
|
||||
<h1>You’re Invited to AdventureLog</h1>
|
||||
<h1>You’re Invited to Voyage</h1>
|
||||
|
||||
<p>Hello <strong>{{ email }}</strong>,</p>
|
||||
|
||||
<p>
|
||||
Adventure awaits! You've been invited to join
|
||||
<span class="highlight">AdventureLog</span>, the ultimate travel
|
||||
<span class="highlight">Voyage</span>, the ultimate travel
|
||||
companion to track, plan, and collaborate on your journeys.
|
||||
</p>
|
||||
<p>Hit the button below to accept your invitation and start exploring!</p>
|
||||
<p><a href="{{ invite_url }}" class="button">Join AdventureLog</a></p>
|
||||
<p><a href="{{ invite_url }}" class="button">Join Voyage</a></p>
|
||||
|
||||
<div class="footer">
|
||||
You’re receiving this email because someone invited you to join
|
||||
AdventureLog.<br />
|
||||
Voyage.<br />
|
||||
If you weren’t expecting this invitation, you can safely ignore this
|
||||
email.<br /><br />
|
||||
© 2023–2026 AdventureLog
|
||||
© 2023–2026 Voyage
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user