{"id":25107348,"url":"https://github.com/jantrw/spacelinker","last_synced_at":"2026-04-28T20:06:17.357Z","repository":{"id":275040731,"uuid":"924562504","full_name":"jantrw/SpaceLinker","owner":"jantrw","description":"🌌 SpaceLinker is a Discord bot that connects people with space. It provides real-time information about the International Space Station (ISS) and the NASA Astronomy Picture of the Day.","archived":false,"fork":false,"pushed_at":"2025-03-31T16:11:51.000Z","size":485,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T17:27:16.831Z","etag":null,"topics":["api","astronomy","discord-bot","exoplanets","iss","java","mars-weather","maven","nasa","slash-commands","space"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jantrw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-30T08:43:05.000Z","updated_at":"2025-03-31T16:11:54.000Z","dependencies_parsed_at":"2025-03-31T17:36:25.851Z","dependency_job_id":null,"html_url":"https://github.com/jantrw/SpaceLinker","commit_stats":null,"previous_names":["jantrw/spacelinker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jantrw%2FSpaceLinker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jantrw%2FSpaceLinker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jantrw%2FSpaceLinker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jantrw%2FSpaceLinker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jantrw","download_url":"https://codeload.github.com/jantrw/SpaceLinker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246777816,"owners_count":20832033,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","astronomy","discord-bot","exoplanets","iss","java","mars-weather","maven","nasa","slash-commands","space"],"created_at":"2025-02-07T23:38:01.228Z","updated_at":"2026-04-28T20:06:17.352Z","avatar_url":"https://github.com/jantrw.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SpaceLinker\n\nEin Discord-Bot, der Menschen mit dem Weltraum verbindet – mit Echtzeit-ISS-Tracking und dem Astronomy Picture of the Day von der NASA.\n\n## Funktionen\n\n- **ISS-Tracking** — Echtzeit-Position, Geschwindigkeit, Höhe, Land, Stadt, Zeitzone und Kartenlink\n- **NASA Bild des Tages** — Tägliches Astronomiebild mit Titel\n- **NASA Bild des Tages + Info** — Tägliches Astronomiebild mit vollständiger Beschreibung\n- **Slash-Commands** — Moderne Discord-Slash-Befehle\n\n### Screenshots\n\n| ISS-Tracking | NASA APOD | NASA APOD + Info |\n|:---:|:---:|:---:|\n| \u003cimg src=\"images/ISS_Output.png\" alt=\"ISS Output\" width=\"400\"\u003e | \u003cimg src=\"images/NasaPictureOfTheDay_Output.png\" alt=\"NASA APOD\" width=\"400\"\u003e | \u003cimg src=\"images/NasaPictureOfTheDayInfo_Output.png\" alt=\"NASA APOD Info\" width=\"400\"\u003e |\n\n## Voraussetzungen\n\n- **Java 21+**\n- **Maven 3.8+**\n- **Discord-Bot-Token** — [Discord Developer Portal](https://discord.com/developers/applications)\n- **NASA-API-Key** — [api.nasa.gov](https://api.nasa.gov/) (kostenlos, oder `DEMO_KEY` für eingeschränkten Zugriff)\n- **GeoNames-Benutzername** — [geonames.org](https://www.geonames.org/) (kostenloses Konto, für Ozean-Erkennung)\n\n## Einrichtung\n\n### 1. Repository klonen\n\n```sh\ngit clone https://github.com/jantrw/SpaceLinker.git\ncd SpaceLinker\n```\n\n### 2. Konfigurationsdatei erstellen\n\nDie Beispielkonfiguration kopieren und API-Schlüssel eintragen:\n\n```sh\ncp src/main/resources/config.properties.example src/main/resources/config.properties\n```\n\n`src/main/resources/config.properties` bearbeiten:\n\n```properties\n# NASA API-Key — kostenlos unter https://api.nasa.gov/\napiKeyNasa=DEIN_NASA_API_KEY\n\n# Discord-Bot-Token — unter https://discord.com/developers/applications\nbotToken=DEIN_DISCORD_BOT_TOKEN\n\n# GeoNames-Benutzername — Registrierung unter https://www.geonames.org/\nusername=DEIN_GEONAMES_BENUTZERNAME\n```\n\n\u003e **Hinweis:** `config.properties` steht in `.gitignore` und wird nicht committed.\n\n### 3. Discord-Bot erstellen\n\n1. Zum [Discord Developer Portal](https://discord.com/developers/applications) gehen\n2. **New Application** klicken → Namen vergeben\n3. Zu **Bot** gehen → **Add Bot** klicken\n4. **Token** kopieren und in `config.properties` eintragen (`botToken`)\n\n### 4. Bot zum Server einladen\n\n`DEINE_CLIENT_ID` durch die Client-ID der Anwendung ersetzen (unter General Information zu finden):\n\n```\nhttps://discord.com/oauth2/authorize?client_id=DEINE_CLIENT_ID\u0026scope=bot\u0026permissions=274877991936\n```\n\nDies gewährt: Nachrichten senden, Links einbetten, Slash-Commands verwenden.\n\n### 5. Bauen und starten\n\n```sh\nmvn clean package\njava -jar target/SpaceLinker-1.0-SNAPSHOT.jar\n```\n\nOder direkt mit Maven starten:\n\n```sh\nmvn compile exec:java -Dexec.mainClass=\"me.jan_dev.DiscordBot\"\n```\n\n### 6. Slash-Commands registrieren\n\nBeim ersten Start registriert der Bot die Slash-Commands automatisch bei Discord. Bei nachfolgenden Starts wird die Registrierung übersprungen, sofern sich die Commands nicht geändert haben.\n\n## Verfügbare Befehle\n\n| Befehl | Beschreibung |\n|--------|-------------|\n| `/iss` | Aktuelle ISS-Position, Geschwindigkeit, Höhe, Standort und Kartenlink |\n| `/picture` | NASA Astronomy Picture of the Day (nur Bild) |\n| `/pictureinfo` | NASA Astronomy Picture of the Day mit vollständiger Beschreibung |\n| `/help` | Zeigt diese Befehlsliste |\n\n## Projektstruktur\n\n```\nsrc/main/java/\n├── me/jan_dev/\n│   ├── DiscordBot.java          # Einstiegspunkt, Bot-Setup, Command-Registrierung\n│   └── BotListener.java         # /help Slash-Command-Handler\n├── commands/\n│   ├── ISSData.java             # /iss Befehl — baut das ISS-Embed\n│   ├── JSONFetcherIss.java      # Holt ISS-Daten von mehreren APIs\n│   ├── NasaPictureOfTheDay.java # /picture und /pictureinfo Befehle\n│   └── NasaCommandHandler.java  # Holt NASA APOD-Daten\n└── data/\n    ├── Config.java              # Lädt config.properties aus dem Classpath\n    └── Http.java                # Gemeinsame HttpClient-Instanz\n```\n\n## Verwendete APIs\n\n| API | Verwendung | Ratenlimit |\n|-----|-----------|------------|\n| [Open Notify](http://open-notify.org/Open-Notify-API/ISS-Location-Now/) | ISS-Position | Kein angegebenes Limit |\n| [Where is the ISS](https://wheretheiss.at/w/Developer) | ISS-Geschwindigkeit, Höhe, Zeitzone | Großzügig |\n| [Nominatim](https://nominatim.org/release-docs/latest/api/Overview/) | Reverse Geocoding (Land, Stadt) | 1 Anfrage/Sekunde |\n| [GeoNames](https://www.geonames.org/export/web-services.html) | Ozean-Erkennung | 1000/Tag (kostenlos) |\n| [NASA APOD](https://api.nasa.gov/) | Astronomy Picture of the Day | 1000/Stunde (mit Key) |\n\n## Tech-Stack\n\n- **[JDA 5.2.2](https://github.com/DV8FromTheWorld/JDA)** — Java Discord API\n- **[Gson 2.10.1](https://github.com/google/gson)** — JSON-Verarbeitung\n- **[SLF4J](https://www.slf4j.org/) + slf4j-simple** — Logging\n\n## Lizenz\n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjantrw%2Fspacelinker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjantrw%2Fspacelinker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjantrw%2Fspacelinker/lists"}