Bubble Gum (06.03.2019)
Thema: Knuddels K3
-
05.03.2019, 23:05 #1
Knuddels K3
Knuddels hat vor Kurzem in einem Instagram Livestream seine K3 vorgestellt und ein paar erste Eindrücke für die kommende K3 gezeigt, Profile waren noch nicht umgesetzt, bisher Channel, Channelliste und die Userapp: Knuddels-Messenger waren integriert. Vielleicht haben ein paar noch in der Szene Interesse an solch einer (Preview). :-)
Mobile-Version wurde auch kurz gezeigt.
URL: https://preview.knuddels.de/login
Mit freundlichen grüßen,
Spectra <3James (privat): Tja, wenn du kein iPhone hast, dann hast du kein iPhone.BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]
-
The Following User Says Thank You to Spectra For This Useful Post:
-
06.03.2019, 21:15 #2
- Registriert seit
- 28.10.2011
- Beiträge
- 630
Thanked 282 Times in 170 PostsAW: Knuddels K3
Man kann sich da nichtmal einloggen ^^
-
06.03.2019, 23:26 #3
AW: Knuddels K3
Wie bereits gesagt, wurde eine Vorschau in einem Instagram Livestream gezeigt, das die K3 nur für einen bestimmten Teil an Beta-Leuten getestet wird, war ja in Knuddels noch nie anders, aber vielleicht will jemand den Quellcode oder sonstiges analysieren oder was auch immer.
James (privat): Tja, wenn du kein iPhone hast, dann hast du kein iPhone.BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]
-
07.03.2019, 01:41 #4
- Registriert seit
- 28.10.2011
- Beiträge
- 630
Thanked 282 Times in 170 PostsAW: Knuddels K3
ich glaube kaum, dass die Clientfiles bereits beim login sichtbar sind...
Anhand den URLs und der Arbeitsweise von Schmuddels kommt man da aber sicher dran, ich schau morgen Abend mal, morgen früh bin ich leider aufgrund OP & Narkose abseits der Welt xD
-
07.03.2019, 16:38 #5
- Registriert seit
- 28.10.2011
- Beiträge
- 630
Thanked 282 Times in 170 PostsAW: Knuddels K3
So, ich kam doch früher heraus als erwartet und die Narkose ist auch mittlerweile vom Körper verarbeitet
habe mal alle Client-Files gezogen, inklusiver Resourcen.
Knuddels lernt nichts - Das war zu erwarten. Anstelle dass diese mal endlich Vectoren benutzen, NEIN, jede einzelne Pissgrafik muss natürlich in PNG vorhanden sein, und dann noch in allen erdenklichen Farben/Stile:
Ich nenn's nun nicht mehr K3, sondern Lappen³, passt besser.
Die Nutzen zudem, so wie es aussieht, kein eigenes gefrickel mehr, selbst das ChatProtokoll läuft über google's protobuf. Wer damit schon gearbeitet hat und die ganzen Protokolldaten rekonstruiert, kann hierfür sich einen eigenen Server schreiben. Im übrigen haben die mittlerweile eine vernünftige REST-API (so schaut es auf den ersten Blick erst einmal aus).
Hier mal der komplette Client:
https://www.filehosting.org/file/det...-hoch-drei.zip
-
The Following User Says Thank You to Bubble Gum For This Useful Post:
Spectra (08.03.2019)
-
08.03.2019, 15:16 #6
- Registriert seit
- 28.10.2011
- Beiträge
- 630
Thanked 282 Times in 170 PostsAW: Knuddels K3
So, ich habe das ganze nun mal etwas weiter analysiert und muss sagen, dass das ganze Thema mit K3 äußerst spannend wird - Insbesondere auch in der Emulator- & Bot-Szene.
Wer sich damit befassen will, sollte jetzt bereits anfangen sich mit dem Thema zu beschäftigen - Denn wenn Knuddels das ganze später "fertig hat" (was sicher noch Jahre dauern kann xD), kommt sicherlich schwer hinterher.
Das Chatprotokoll lassen die auch auf protobuf laufen - Der Vorteil für uns ist, dass wir nun viel einfacher automatisiert arbeiten können - Vorrausgesetzt, man hat die proto-Files. Ich bin dem schon etwas zuvor gekommen und hab mir alle proto-Files rekonstruiert. Mit der derzeitigen Version sind das mehr als 134 proto-Files (hierbei gibt es auch bundles), die von der Registrierung, bis hin zur core, Channel uns Messenger reichen... Die Dateien behalte ich aber vorerst für mich, weil das wirklich mühselig war, manuell die Definitionen zusammenzubasteln.
Daraus kann man sicher nicht nur einen eigenen Server-Emulator basteln, sondern auch Bots entwickeln. Knuddels macht es uns da richtig einfach
Man merkt auch übel, dass Knuddels in der "Neuimplementierung" mehr falsch macht als es Recht ist. Anstelle, dass die das ganze einmal vernünftig implementieren, wird wieder Spaghetti-Code erzeugt (Enums wie Gender existieren als Definition mehrfach, bspw. in core und registration), name conversion wird nicht eingehalten (es arbeiten wohl einige daran, die verschiedene Code-Stile besitzen),... Language strings sind direkt in der Applikation untergebracht (WTF, Why? Bei jeder Änderung rebuild???), Thirdparty-Core's (irgendwelche zusätzlichen JS-Libs) werden in der Applikation untergebracht,... Wozu, noch nie was von CDN gehört, hauptsache viel Code laden lassen... Ach, einfach alles
Hier noch die neuen Endpoints, für die verschiedene Systeme:
DE
Origin: https://www.knuddels.de
PICS: https://cdn.knuddelscom.de/knuddels.de/
LOGIN: https://api-de.knuddels.de/login
WEBSOCKET: wss://k8s.knuddels.de/clientgateway-de
CHANNEL: https://api-de.knuddels.de/channel-list
CHATSERVER: https://chat.knuddels.de
AT
Origin: https://www.knuddels.at
PICS: https://cdn.knuddelscom.de/knuddels.at/
LOGIN: https://api-at.knuddels.de/login
WEBSOCKET: wss://api-at.knuddels.de/clientgateway
CHANNEL: https://api-at.knuddels.de/channel-list
CHATSERVER: https://chat.knuddels.de:4711
Dev
Origin: https://devwww.knuddels.de
PICS: https://cdn.knuddelscom.de/knuddels.dev/
LOGIN: https://api-dev.knuddels.de/login
WEBSOCKET: wss://api-dev.knuddels.de/clientgateway
CHANNEL: https://api-dev.knuddels.de/channel-list
CHATSERVER: https://developer.knuddels.de:4337
Test
Origin: https://testserver.knuddels.de
PICS: https://cdn.knuddelscom.de/knuddels.test/
LOGIN: https://api-test.knuddels.de/login
WEBSOCKET: wss://api-test.knuddels.de/clientgateway"
CHANNEL: https://api-test.knuddels.de/channel-list
CHATSERVER: https://chat.knuddels.de:4720
Local
Origin: https://testserver.knuddels.de
PICS: https://cdn.knuddelscom.de/knuddels.test/
LOGIN: https://api-test.knuddels.de/login
WEBSOCKET: wss://api-test.knuddels.de/clientgateway"
CHANNEL: https://api-test.knuddels.de/channel-list
CHATSERVER: https://chat.knuddels.de:4720
return n = p.sent(), [4, fetch(u.Servers[n].ORIGIN + "/logincheck.html", {
method: "post",
headers: {
Accept: "application/json",
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
},
body: "nick=" + encodeURIComponent(e) + "&pwd=" + encodeURIComponent(t)
})];Geändert von Bubble Gum (08.03.2019 um 15:57 Uhr)
-
-
08.03.2019, 20:47 #7
- Registriert seit
- 28.10.2011
- Beiträge
- 630
Thanked 282 Times in 170 PostsAW: Knuddels K3
So, hier mal die protobuf API von Knuddels in sämtlichen Programmiersprachen:
C++: https://www.file-upload.net/download...686/C.rar.html
C#: https://www.file-upload.net/download...Sharp.rar.html
Java: https://www.file-upload.net/download.../Java.rar.html
JS: https://www.file-upload.net/download...90/JS.rar.html
Obj-C: https://www.file-upload.net/download...Obj-C.rar.html
PHP: https://www.file-upload.net/download...2/PHP.rar.html
Python: https://www.file-upload.net/download...ython.rar.html
Ruby: https://www.file-upload.net/download.../Ruby.rar.html
Damit lässt sich auf jeden Fall ein Clienten oder gar ein Server mit basteln, vorrausgesetzt, man kann mit protobuf umgehenBei all den compiled targets müssen selbstverständlich die protobuf-Core mit angehängt werden - Logisch...
In PHP funktioniert das ganze zum Beispiel so:
PHP-Code:$request = new RegistrationRequest();
$request->setType(RequestType::FULL_REG_V1);
$request->setNick('Holgi');
$request->setAge(39);
$request->setGender(Gender::MALE);
$data = $request->serializeToString();
var_dump($data);
Habt ihr Beispielsweise ein Payload gefunden und möchtet wissen, was dies ist, einfach das base64-decoded Zeugs durch https://protogen.marcgravell.com/decode jagen, da findet man dann Anhaltspunkte, welche Daten verwendet werden.Geändert von Bubble Gum (08.03.2019 um 21:00 Uhr)
-
-
09.03.2019, 05:57 #8
AW: Knuddels K3
Hallo in die Runde,
seit einer Weile arbeiten wir nun daran, im Rahmen von K3 unsere Plattform von Grund auf zu erneuern. Wir haben nicht nur die Registrierung auf allen Plattformen vereinheitlicht, sondern konnten auch die erste Version des Knuddels Messengers, der ein wichtiger Teil von K3 sein wird, zum Ausprobieren freigeben.
Dies waren bereits große Meilensteine. Sie sind jedoch nur einzelne Teile eines neuen Knuddels, welches wir in den letzten Monaten entwickelt und nun in einer ersten Version der K3-App umgesetzt haben. Sie soll dann irgendwann den Minichat, die iOS-App, sowie die Android-App ersetzen.
Genau diese App möchten wir in den nächsten Tagen mit einigen wenigen neuen Mitgliedern, die sich im Web registrieren, ausprobieren. Dadurch möchten wir mit Hilfe von Statistiken herausfinden, ob die grundlegenden Ideen und Bedienungselemente verstanden werden.
Wir starten mit der Website, da dort 50% der Registrierungen von mobilen Geräten und 50% der Registrierungen von klassischen Desktop Geräten erfolgen. Dadurch haben wir perfekte Voraussetzungen, um die Wirkung der mobilen Erfahrung, sowie der Desktop Erfahrung zu testen.
Gleichzeitig wissen wir allerdings auch, dass die Version der K3-App, die wir testen werden, qualitativ noch nicht ausreicht, um euren Ansprüchen auch nur im Ansatz gerecht zu werden. Wir haben z.B. kein Profil im aktuellen Stand implementiert und Notrufe werden zugewiesen, ohne dass man diese in der K3-App bearbeiten kann. Es gibt, abgesehen vom Chat und dem Messenger, keinerlei weiterführende Funktionen.
Wir möchten euch trotzdem die Möglichkeit geben, bei Interesse die App testen zu können. Meldet euch hierfür bitte mit einem extra dafür angemeldeten Zweitnick beim Community Management. Diesen Nick könnt ihr dann auch künftig immer nutzen, um unsere Weiterentwicklung in K3 auszuprobieren, er wird dauerhaft im Test bleiben, wir werden ihn nicht entfernen.
Sobald wir mehr Funktionen eingebaut haben und denken, dass die K3-App für euch sinnvoll und nutzbar ist, werden wir den Test ausweiten. Euer Feedback, das wie beim Messenger, direkt an das K3-Entwicklungsteam geschickt werden kann, werden wir natürlich dann in die Entwicklung mit einbeziehen.
Für alle, die sich keinen Zweitnick anlegen möchten und trotzdem neugierig sind, wie die aktuelle K3-App aussieht und was die derzeitigen Funktionen sind, haben wir ein kleines Video vorbereitet:
Quelle: https://forum.knuddels.de/ubbthreads...46#Post2935246James (privat): Tja, wenn du kein iPhone hast, dann hast du kein iPhone.BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]
-
09.03.2019, 12:24 #9
- Registriert seit
- 28.10.2011
- Beiträge
- 630
Thanked 282 Times in 170 PostsAW: Knuddels K3
Bähm, ich hab das ganze nun verstanden
Alle "Pakete" werden in der Klasse Token untergebracht. Wie im Registrierungs-Thread angenommen, handelt es sich Beispielsweise bei !/registration.RegistrationRequest nicht um die "Action", sondern lediglich um die jeweilige Message.
Token hat nämlich ein Any-Field (wie in der Programmierung ein Object-Typ, was zurückconvertiert/gecastet werden kann) worunter die jeweiligen Messages sitzen. Damit man aber wieder die jeweilige Message zurückwandeln kann, bietet Any eine type_url an - Und genau dies ist der Wer /registration.RegistrationRequest und dementsprechend /registration/RegistrationRequest.proto.
Hier mal eine simple Helper-Class in PHP, der das ganze macht:
PHP-Code:class Packet {
private $message = null;
private $name = '/';
public function __construct($message) {
$this->message = $message;
$this->name .= str_replace('\\', '.', lcfirst(get_class($this->message))); // lcfirst ist nicht überall gleich!
}
public function encode() {
$any = new \google\protobuf\Any();
$any->pack($this->message);
$any->setTypeUrl($this->name);
$token = new Token();
$token->setMessage($any);
return base64_encode($token->serializeToString());
}
}
PHP-Code:$request = new \registration\RegistrationRequest();
$request->setType(RequestType::NICK);
$request->setNick('RegTesting123');
$packet = new Packet($request);
$encoded = $packet->encode();
var_dump($encoded);
Zitat von Original
Zitat von Selbst erstellt
Ich habe das ganze nun mal als simples PHP-Framework implementiert: https://github.com/PineappleK3/PHP-Framework
Bisher ist aber nur die Schnittstelle zu /registration.RegistrationRequest implementiert, die anderen noch "schnell" zu implementieren, sind etwas Zeitaufwändig
Mittels
PHP-Code:$decoded = Packet::decode($packet);
P.S. die proto-Files sind im Repo https://github.com/PineappleK3/protobuf, was aber privat gestellt ist. Ich behalte mir vor, einzelnen vielleicht Zugriff drauf zu geben ^.^
-
09.03.2019, 13:36 #10
- Registriert seit
- 28.10.2011
- Beiträge
- 630
Thanked 282 Times in 170 PostsAW: Knuddels K3
Ich hab das ganze nun um einen NetworkManager erweitert, damit lässt sich nun definitiv easy ein RegBot basteln:
PHP-Code:<?php
require_once('C:/Users/adria/Documents/GitHub/PHP-Framework/lib/autoload.php');
header('Content-Type: text/plain');
$knuddels = new Knuddels();
$packet = $knuddels->register()->checkNick('hahag16');
$knuddels->request('https://www.knuddels.de/registration/registration_submit.html', $packet, function($response) use ($knuddels) {
print 'Nickname: ' . $response->getNickContext() . PHP_EOL;
$oks = $response->getOks();
foreach($oks AS $ok) {
print "\nOK: " . trim($ok);
}
$errors = $response->getErrors();
foreach($errors AS $error) {
print 'Error: ' . PHP_EOL;
print "\nText: " . trim($error->getText());
print "\nType: " . \Registration\ErrorType::name($error->getErrorType());
print "\nInfo: " . \Registration\ErrorInfo::name($error->getErrorInfo());
print PHP_EOL;
}
print PHP_EOL;
$success = $response->getSuccess();
var_dump($success);
});Nickname:
Error:
Text: Nickname:
Der Wert ist zu lang. Maximal erlaubte Länge ist 26
Type: TOO_LONG
Info: fieldNameNickname: Holgi
Error:
Text: Nickname:
Existiert bereits
Type: ALREADY_EXISTS
Info: fieldNameNickname: Fotze
Error:
Text: Nickname:
Bitte überdenke deine Wortwahl noch ein Mal
Type: CONTAINS_BAD_WORDS
Info: fieldName
Ähnliche Themen
-
p1rates.in | Szene Blog rund um Knuddels und Knuddels Bots
Von Devon im Forum Knuddels Underground SzeneAntworten: 214Letzter Beitrag: 08.05.2014, 04:55 -
Knuddels.ch & Knuddels.de blicken in eine gemeinsame Zukunft
Von LaSombra im Forum Knuddels-NewsAntworten: 9Letzter Beitrag: 19.12.2012, 16:01
Stichworte
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.