mirror of
https://github.com/SirHumza/orbisRPC.git
synced 2026-10-24 16:05:56 +02:00
docs: wikidata creation kit + policy-safe wikipedia draft; site: allow Bing/Claude/DuckDuck bots, add url+mainEntityOfPage
This commit is contained in:
1 parent
b5d6817fe1
commit
4f02fa348e
6 files changed
+493
No files matched your search
@@ -0,0 +1,67 @@
|
||||
<!--
|
||||
Wikipedia DRAFT for orbisRPC.
|
||||
|
||||
READ THIS FIRST:
|
||||
- This is meant for the DRAFT namespace (Draft:OrbisRPC), NOT article
|
||||
mainspace. New accounts cannot create mainspace articles; drafts go through
|
||||
Articles for Creation (AfC).
|
||||
- This WILL be declined right now. Wikipedia requires significant coverage in
|
||||
independent, reliable, secondary sources (WP:GNG / WP:NSOFTWARE). orbisRPC
|
||||
currently has none — no press, no third-party writeups. The only sources
|
||||
below are the project's own repo/site, which are not independent.
|
||||
- Do not remove the {{notability}} / {{COI}} tags to sneak it through. That
|
||||
gets the page speedily deleted and your account warned.
|
||||
- Use this to have the text ready the day independent coverage exists (a
|
||||
GBAtemp/PSX-Place writeup, a YouTube review counted as a source is weak, a
|
||||
news article is ideal). Then fill in <ref> citations and submit.
|
||||
- You are the maintainer — disclose it ({{COI}} and a note on your user page).
|
||||
-->
|
||||
{{Draft article|orbisRPC|subject=software}}
|
||||
{{notability|date=October 2026}}
|
||||
{{COI|date=October 2026}}
|
||||
{{Infobox software
|
||||
| name = orbisRPC
|
||||
| logo =
|
||||
| screenshot =
|
||||
| caption =
|
||||
| author = SirHumza, CyberMask367
|
||||
| developer =
|
||||
| released =
|
||||
| latest release version = 1.0.0
|
||||
| latest release date =
|
||||
| programming language = C
|
||||
| operating system = [[PlayStation 4]] ([[FreeBSD]]-based Orbis OS)
|
||||
| platform = [[PlayStation 4]]
|
||||
| genre = [[Discord]] [[Rich Presence]] utility
|
||||
| license =
|
||||
| website = https://sirhumza.github.io/orbisRPC/
|
||||
}}
|
||||
|
||||
'''orbisRPC''' is a free, [[open-source software|open-source]] [[Discord]] [[Rich Presence]] utility for the [[PlayStation 4]]. It runs as a payload on [[GoldHEN]]-jailbroken consoles and displays the game currently being played — title, cover art and a play timer — on a user's Discord profile.<ref name="repo">{{cite web |title=orbisRPC repository |url=https://github.com/SirHumza/orbisRPC |access-date=18 October 2026}}</ref> Unlike earlier PlayStation 4 rich-presence tools, which are PC-side scripts, orbisRPC runs entirely on the console and connects directly to the Discord gateway over [[Transport Layer Security|TLS]].<ref name="repo" />
|
||||
|
||||
== Features ==
|
||||
|
||||
orbisRPC detects the foreground application on the console and reports it to Discord. Coverage includes retail PlayStation 4 titles, homebrew software, and a curated list of PlayStation, PlayStation 2 and PlayStation Portable titles, with automatic cover art drawn from image databases.<ref name="repo" />
|
||||
|
||||
The software supports [[PlayStation 4 system software|firmware]] versions 5.05 through 13.52, and is installed as a single package that can start automatically on boot.<ref name="repo" />
|
||||
|
||||
== See also ==
|
||||
|
||||
* [[GoldHEN]]
|
||||
* [[Rich Presence]]
|
||||
* [[PlayStation 4 homebrew]]
|
||||
|
||||
== References ==
|
||||
|
||||
{{reflist}}
|
||||
|
||||
<!--
|
||||
TODO before submitting:
|
||||
1. Replace every {{cite web}} pointing at the repo/site with INDEPENDENT
|
||||
coverage (news article, reputable blog, magazine). Self-sources do not
|
||||
satisfy WP:GNG.
|
||||
2. Remove {{notability}} once 2+ independent reliable sources exist.
|
||||
3. Add [[Category:PlayStation 4 software]] and a short [[Category:Discord]]
|
||||
style category only after the article is accepted.
|
||||
4. Submit via AfC: add {{subst:submit}} at the top and save.
|
||||
-->
|
||||
@@ -0,0 +1,153 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Create the Wikidata item for orbisRPC, then print the new QID.
|
||||
|
||||
Needs ONE thing: a Wikidata bot password. Generate it at
|
||||
https://www.wikidata.org/wiki/Special:BotPasswords
|
||||
(label it "orbisRPC-creator", grant the "Edit existing pages" + "Create,
|
||||
edit, and move pages" rights). It prints a username like
|
||||
"YourUser@orbisRPC-creator" and a random password.
|
||||
|
||||
Then run:
|
||||
WD_BOT_USER='YourUser@orbisRPC-creator' WD_BOT_PASS='the-random-password' \
|
||||
python3 docs/wikipedia/create_wikidata_item.py
|
||||
|
||||
Stdlib only. Idempotent: if an item labelled "orbisRPC" with the Discord
|
||||
description already exists, it prints that QID and exits instead of duplicating.
|
||||
"""
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
import urllib.parse
|
||||
import urllib.request
|
||||
import http.cookiejar
|
||||
|
||||
API = "https://www.wikidata.org/w/api.php"
|
||||
UA = "orbisRPC-wikidata-creator/1.0 (https://github.com/SirHumza/orbisRPC)"
|
||||
|
||||
LABEL = "orbisRPC"
|
||||
DESC = "Discord Rich Presence software for the PlayStation 4"
|
||||
ALIASES = ["orbis rpc", "Orbis RPC", "orbisRPC PS4"]
|
||||
|
||||
REPO = "https://github.com/SirHumza/orbisRPC"
|
||||
SITE = "https://sirhumza.github.io/orbisRPC/"
|
||||
|
||||
|
||||
def item_claim(prop, qid):
|
||||
numeric = int(qid.lstrip("Q"))
|
||||
return {
|
||||
"mainsnak": {
|
||||
"snaktype": "value",
|
||||
"property": prop,
|
||||
"datavalue": {
|
||||
"value": {"entity-type": "item", "numeric-id": numeric, "id": qid},
|
||||
"type": "wikibase-entityid",
|
||||
},
|
||||
},
|
||||
"type": "statement",
|
||||
"rank": "normal",
|
||||
}
|
||||
|
||||
|
||||
def url_claim(prop, url):
|
||||
return {
|
||||
"mainsnak": {
|
||||
"snaktype": "value",
|
||||
"property": prop,
|
||||
"datavalue": {"value": url, "type": "string"},
|
||||
},
|
||||
"type": "statement",
|
||||
"rank": "normal",
|
||||
}
|
||||
|
||||
|
||||
def main():
|
||||
user = os.environ.get("WD_BOT_USER")
|
||||
password = os.environ.get("WD_BOT_PASS")
|
||||
if not user or not password:
|
||||
sys.exit(
|
||||
"Set WD_BOT_USER and WD_BOT_PASS (see docstring). Nothing sent."
|
||||
)
|
||||
|
||||
jar = http.cookiejar.CookieJar()
|
||||
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(jar))
|
||||
opener.addheaders = [("User-Agent", UA)]
|
||||
|
||||
def call(params):
|
||||
params = dict(params)
|
||||
params["format"] = "json"
|
||||
data = urllib.parse.urlencode(params).encode()
|
||||
with opener.open(urllib.request.Request(API, data=data)) as resp:
|
||||
return json.load(resp)
|
||||
|
||||
token = call({"action": "query", "meta": "tokens", "type": "login"})["query"][
|
||||
"tokens"
|
||||
]["logintoken"]
|
||||
|
||||
login = call(
|
||||
{
|
||||
"action": "login",
|
||||
"lgname": user,
|
||||
"lgpassword": password,
|
||||
"lgtoken": token,
|
||||
}
|
||||
)
|
||||
if login.get("login", {}).get("result") != "Success":
|
||||
sys.exit("Login failed: %s" % json.dumps(login.get("login", login)))
|
||||
|
||||
csrf = call({"action": "query", "meta": "tokens", "type": "csrf"})["query"][
|
||||
"tokens"
|
||||
]["csrftoken"]
|
||||
|
||||
existing = call(
|
||||
{
|
||||
"action": "wbsearchentities",
|
||||
"search": LABEL,
|
||||
"language": "en",
|
||||
"type": "item",
|
||||
"limit": 5,
|
||||
}
|
||||
).get("search", [])
|
||||
for hit in existing:
|
||||
if hit.get("label", "").lower() == "orbisrpc":
|
||||
print("Already exists: %s (%s)" % (hit["id"], hit.get("description", "")))
|
||||
print("https://www.wikidata.org/wiki/%s" % hit["id"])
|
||||
return
|
||||
|
||||
entity = {
|
||||
"labels": {"en": {"language": "en", "value": LABEL}},
|
||||
"descriptions": {"en": {"language": "en", "value": DESC}},
|
||||
"aliases": {
|
||||
"en": [{"language": "en", "value": a} for a in ALIASES]
|
||||
},
|
||||
"claims": {
|
||||
"P31": [item_claim("P31", "Q506883")],
|
||||
"P400": [item_claim("P400", "Q5014725")],
|
||||
"P1324": [url_claim("P1324", REPO)],
|
||||
"P856": [url_claim("P856", SITE)],
|
||||
"P277": [item_claim("P277", "Q15777")],
|
||||
},
|
||||
}
|
||||
|
||||
result = call(
|
||||
{
|
||||
"action": "wbeditentity",
|
||||
"new": "item",
|
||||
"token": csrf,
|
||||
"data": json.dumps(entity),
|
||||
"summary": "Create orbisRPC (PS4 Discord Rich Presence); maintainer disclosure on user page",
|
||||
}
|
||||
)
|
||||
|
||||
if "error" in result:
|
||||
sys.exit("Create failed: %s" % json.dumps(result["error"]))
|
||||
|
||||
qid = result["entity"]["id"]
|
||||
print("Created %s" % qid)
|
||||
print("https://www.wikidata.org/wiki/%s" % qid)
|
||||
print()
|
||||
print("Next: add %s to the sameAs array in site/index.html and"
|
||||
" site/about-orbisrpc.html, then commit + push." % qid)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,82 @@
|
||||
# Wikidata item for orbisRPC — creation kit
|
||||
|
||||
**This is the move that actually works.** Wikidata has a far lower bar than
|
||||
Wikipedia (no "significant coverage" requirement — a public repo is a serious,
|
||||
publicly available reference, which is what Wikidata notability asks for). And
|
||||
Wikidata is one of the strongest signals Google's Knowledge Graph and AI
|
||||
answer engines use to keep entities with the same name apart. This directly
|
||||
attacks the "orbisRPC vs Orbis Protocol / Orbis Corporation" merge problem.
|
||||
|
||||
Submit this yourself while logged in. Do **not** automate edits — Wikidata
|
||||
reverts and blocks bots that add promotional items.
|
||||
|
||||
## Steps
|
||||
|
||||
1. Log in at https://www.wikidata.org (create an account if needed; new items
|
||||
from a brand-new account attract scrutiny, so add a note on your user page:
|
||||
"I maintain orbisRPC and am creating its item" — see Conflict of interest
|
||||
disclosure below).
|
||||
2. Open the item creator: https://www.wikidata.org/wiki/Special:NewItem
|
||||
3. Fill in the label and description below, create the item, then add the
|
||||
statements. Copy the QIDs exactly.
|
||||
|
||||
## Core fields
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Language | English (`en`) |
|
||||
| Label | `orbisRPC` |
|
||||
| Description | `Discord Rich Presence software for the PlayStation 4` |
|
||||
| Also known as (aliases) | `orbis rpc`, `Orbis RPC`, `orbisRPC PS4` |
|
||||
|
||||
## Statements
|
||||
|
||||
Add each with "add statement", property first, then the value:
|
||||
|
||||
| Property | Value | Notes |
|
||||
|---|---|---|
|
||||
| instance of (P31) | `free and open-source software` (Q506883) | |
|
||||
| platform (P400) | `PlayStation 4` (Q5014725) | |
|
||||
| source code repository (P1324) | `https://github.com/SirHumza/orbisRPC` | |
|
||||
| official website (P856) | `https://sirhumza.github.io/orbisRPC/` | |
|
||||
| programmed in (P277) | `C` (Q15777) | |
|
||||
| software license (P275) | **leave out** | license undecided (MIT vs GPL); add once picked |
|
||||
|
||||
Optional, only if you can source them (don't guess, Wikidata deletes
|
||||
unsourced values):
|
||||
- `published in` — no.
|
||||
- `author` (P50) / `developer` (P178) — Wikidata expects an *item* as the value,
|
||||
not a plain string, so this needs a person item for you and CyberMask367.
|
||||
Skip unless those items exist.
|
||||
|
||||
## Identifier / reference
|
||||
|
||||
Under the item's "Identifiers" or as a reference on P1324/P856:
|
||||
- `GitHub username` if you add one, or set the reference on the repository
|
||||
statement to `https://github.com/SirHumza/orbisRPC` (retrieved date = today).
|
||||
|
||||
## Conflict of interest disclosure
|
||||
|
||||
Wikidata's COI guidance (not as strict as Wikipedia's) still asks you to be
|
||||
transparent. Put this on your Wikidata user page:
|
||||
|
||||
```
|
||||
I am the maintainer of orbisRPC (https://github.com/SirHumza/orbisRPC) and
|
||||
created its item. Edits are limited to factual statements about that project.
|
||||
```
|
||||
|
||||
## Do not
|
||||
|
||||
- Do not add "notable for" or award-like claims.
|
||||
- Do not add comparisons to other products in the description (keep it neutral:
|
||||
"Discord Rich Presence software for the PlayStation 4").
|
||||
- Do not create a second item for a spelling variant — add it as an **alias**.
|
||||
- Do not link the item from `sameAs` in your site schema until the item exists
|
||||
and survives a week without a deletion tag.
|
||||
|
||||
## After it is live
|
||||
|
||||
1. Copy the item URL (e.g. `https://www.wikidata.org/wiki/Q123456789`).
|
||||
2. Add it to the `sameAs` array in `site/index.html` (#software node) and to
|
||||
`site/about-orbisrpc.html`.
|
||||
3. Commit + push so Pages redeploys and the IndexNow step re-pings.
|
||||
Reference in new issue
Block a user