hey bratan, ich hätte interesse
Beiträge von koksal baba
-
-
Stimmt. Ich gehe aber stark davon aus, dass es ein Rechtschreibfehler war/ist. Wenn man sein "deutsch" anschaut wie er schreibt, kann man stark davon ausgehen.
Urteile niemals so über Menschen. Wenn ich mich richtig erinnere, dann ist HayvanModus Schweizer. :--)
-
Nein gibt es nicht & es gibt keine Register Datei sondern nur eine Index Datei wo der Register mit drinnen ist
Dann füg halt nach erfolgreicher Registration eine Weiterleitung ein?
-
niemals gehe ich in deutschland wählen!!!1111
-
Ist er nicht. Unverständlich, nicht richtig Verwendbar, hab keine Ahnung wie das Ding funktionieren soll tbh.
Muss ich deine "{hotel}" ersetzen oder was?Verwendbar ist er schon, da es ja seinen Zweck erfüllt. Du musst nichts daran ändern.
Und wegen "{hotel}" hast du dich anscheinend im Thread vertan.
mfg.
-
Seit wann bist du denn in der Lage vorzugeben was die Community hier kann und nicht?
Wenn ich mir die ganzen Threads anschaue, dann kann ich für mich persönlich ein Urteil fällen. Macht ja auch keinen Unterschied, da der Code lesbar ist ?????
¯\_(ツ)_/¯
-
Nice, ein einfaches ".box" wird zu "[data-box]".
Man kann auch mehrere ID's nutzen, dem Browser ist das alles egal, der fixxt sogar dein Kaputtes HTML so gut wie er kann.
Ich wollte zeigen was einfach Best Practice ist und das sind Klassen, wenig ID's nur wenn wirklich Notwendig.Zumal "data-" Attribute garnicht dazu gedacht sind als Selektor zu agieren. Möglich ist alles.
Aber warum ich als "Alternative" zu HTML5-Tags HTML5-Attribute nutzen sollte ist mir nicht schlüssig.
Gibt es da einen Vorteil, seh ich etwas nicht? Wenn ja klär mich gern auf.ne, hat keinen vorteil. mein post ging nur darauf hinaus, das es mehre möglichkeiten gibt, einzelne elemente anzusprechen.
-
Ich benutze IDs wenn ich mit JS ein bestimmtes Element "bearbeiten" will.
Ansonsten HTML5 Tags oder class.
zB. für eine navigation benutze ich <nav>...</nav> macht für mich mehr Sinn als <div class="nav">...</div>.
Als alternative kann man "data-" Attribute nutzen.
-
Wenn man ein Noob ist wie ich? Gibst trz kein Support wie das geht?
Kein Support.
-
Aber für so was kleines brauchst du doch keine Typsicherheit?
Hättest du direkt in JS machen können.. wäre lesbarer und kompakter. Aber gut.
TypeScript wurde nur angewendet, weil es ein "großes" (?) Projekt war. Dementsprechend war auch meine TypeScript Konfiguration angepasst.
Viele hätten mit der TypeScript Source auch nichts anfangen können (auch wenn dieser deutlich lesbarer wäre).
Magst den TypeScript Code hinzufügen?
Würd des gern lesen könnenDie Source ist auch so lesbar. https://i.imgur.com/Vbxwarw.png
-
Hallo.
Ich veröffentlichte hier meinen selbst geschriebenen "News Ripper" (lol). Gammelt auch schon seit einiger Zeit auf meiner Festplatte.
Dependencies:
- (fs)
- request-promise
Screenshot (GIF)
https://i.imgur.com/A5hfVio.gifv
Source:
JavaScript: news.js
Alles anzeigen"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /** * @author kanax * @class News * @description Speichert alle Habbo Hotel(s) Artikel Bilder */ var request_promise_1 = __importDefault(require("request-promise")); var fs_1 = __importDefault(require("fs")); var News = /** @class */ (function () { function News() { this._path = 'https://images.habbo.com/habbo-web-news/{hotel}/production/all_{index}.html'; this._images = []; this._hotels = [ 'de', 'com', 'es', 'fi', 'it', 'tr', 'fr', 'nl' ]; } /** * Hier werden alle Bilder von verschiedenen Hotels in einem Array gespeichert */ News.prototype.getNews = function () { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { this._hotels.forEach(function (hotel) { return __awaiter(_this, void 0, void 0, function () { var i; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: i = 1; _a.label = 1; case 1: if (!(i < 100)) return [3 /*break*/, 4]; return [4 /*yield*/, request_promise_1.default(this._path.replace('{hotel}', hotel).replace('{index}', i.toString())) .then(function (resp) { resp.match('(?<=src=").*?(?=[\?"])').forEach(function (value) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) { this._images.push(value.replace('_thumb', '')); this.saveImages(); return [2 /*return*/]; }); }); }); }) .catch(function (err) { if (err.statusCode !== 200) { return; } })]; case 2: _a.sent(); _a.label = 3; case 3: i++; return [3 /*break*/, 1]; case 4: return [2 /*return*/]; } }); }); }); return [2 /*return*/]; }); }); }; /** * Speichert alle vorhandenen Bilder */ News.prototype.saveImages = function () { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { this._images.forEach(function (image) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, request_promise_1.default(image, { encoding: 'binary' }) .then(function (resp) { if (image.includes('defaults')) { image = image.replace('https://images.habbo.com/web_images/defaults', ''); } image = image.replace('https://images.habbo.com/web_images/habbo-web-articles/', ''); fs_1.default.writeFile("./news/" + image, resp, 'binary', function (error) { if (error) { console.log(error); } else { console.log(image + " wurde gespeichert!"); } }); }) .catch(function (err) { if (err) { return; } })]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }); return [2 /*return*/]; }); }); }; return News; }()); exports.default = News;
Diese JavaScript-Datei wurde vom TypeScript Compiler erstellt. Alles ist soweit asynchron und auch funktionstüchtig.
Kein Support.
Mit freundlichen Grüßen
kanax
-
Warum obfuscatest du den Code?
Hab ich nicht. Das ist der lesbare Code für JavaScript vom TypeScript Compiler erstellt.
-
Hallo.
Stelle hier ein Badge Ripper geschrieben in NodeJS zu Verfügung. Geschrieben wurde es in TypeScript (nur output wird gepostet) und soweit alles Asynchron (auch das speichern).
Dependencies:
- (fs)
- request-promise
Screenshot (GIF):
https://i.imgur.com/lWHAvDB.gifv
Source:
JavaScript: badge.js
Alles anzeigen"use strict"; /** * @author kanax * @class Badges * @description Badges "Downloader" */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var request_promise_1 = __importDefault(require("request-promise")); var fs_1 = __importDefault(require("fs")); var Badges = /** @class */ (function () { function Badges() { this._badgePath = 'https://www.habbo.com/gamedata/external_flash_texts/0'; this._galleryPath = 'https://images.habbo.com/c_images/album1584/{badgeName}.gif'; this._badges = []; } /** * Gibt den Path zurück * @return {string} */ Badges.prototype.getBadgePath = function () { return this._badgePath; }; /** * Alle Badge-Namen in einem Array speichern */ Badges.prototype.getBadges = function () { return __awaiter(this, void 0, void 0, function () { var options; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: options = { url: this._badgePath, headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64)', }, }; return [4 /*yield*/, request_promise_1.default(options) .then(function (resp) { _this._badges = resp.match(/(?<=badge_name_)(.*)(?==)/gm); }).catch(function (err) { if (err) { console.log(err); } })]; case 1: _a.sent(); return [2 /*return*/, request_promise_1.default]; } }); }); }; /** * Speichert alle Badges */ Badges.prototype.saveBadges = function () { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { if (this._badges.length === 0) { console.log('Es wurden keine Badges gefunden!'); return [2 /*return*/]; } this._badges.forEach(function (badge) { return __awaiter(_this, void 0, void 0, function () { var badgeL; return __generator(this, function (_a) { switch (_a.label) { case 0: badgeL = badge.replace(' ', ''); return [4 /*yield*/, request_promise_1.default(this._galleryPath.replace('{badgeName}', badgeL), { encoding: 'binary' }) .then(function (image) { fs_1.default.writeFile("./badges/" + badgeL + ".gif", image, 'binary', function (err) { if (err) { console.log(err); } else { console.log(badge + " wurde gespeichert!"); } }); }) .catch(function (err) { if (err) { return; } })]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }); return [2 /*return*/]; }); }); }; return Badges; }()); exports.default = Badges;
Badges werden im Ordner "badges" gespeichert (falls nicht vorhanden, dann erstellen).
Code hat bei mir gegammelt und man könnte noch einige Kleinigkeiten hinzufügen.
Biete keinen Support.
Mit freundlichen Grüßen
kanax
-
Süßer das ist nur ein Design, keine sorge.
Template*
-
hat zwar nichts mit deinem problem zutun, aber warum zum fick sind deine div-klassen auf deutsch UND englisch?
und warum zur hölle überall klassen?
https://www.html-seminar.de/class_und_id.htm einmal anschauen und lernen. dankeschön.
-
Ich bin mir nicht sicher, ob man hier noch was sehen wird. Als ich gefragt wurde ob ich bei Ares mitmachen will, kam von Meliodas kaum bis gar nichts (vielleicht liege ich auch falsch und er hat was gemacht), jedenfalls habe ich keine Updates von ihm gesehen. Daraufhin haben wir ein neues Entwickler Team aufgebaut. C3O, Dome, Cqeal und ich haben dann die Ares Entwicklung übernommen. Das einzige Problem war, alle 4 von uns mussten bezahlt werden, und nicht für wenig Geld. Und da wir keine Bastarde sind und einen korrekten Bruder wie Otaku nicht sein komplettes Geld aus der Tasche ziehen wollen, wollten wir ihn nicht 1 jahrlang uns alle bezahlen lassen. Ares ist ein Projekt, was lange dauern würde und dass jemand uns soviel für ein Habbo Projekt zahlt, wollten wir nicht und vielleicht kann die Person dass auch nicht auf Dauer finanzieren. Wir wollen uns eher auf Projekte konzentrieren, die sich mehr lohnen. Man darf nicht vergessen, im Endeffekt ist es auch nur Habbo, ich weiß für viele hier ist Habbo ihr Leben, aber es ist und bleibt nur Habbo.
Also wie gesagt, keine Ahnung ob von Meliodas oder anderen was kommt, aber von unserer Seite (C3O, Dome, Cqeal und mir) wahrscheinlich nichts. Vielleicht wird von uns mal für andere Habbo Projekte wie HabboYT oder so, kleine Systeme oder Designs kommen, aber keine großen Projekte wie Ares.
Habe bis dato nie was professionelles von Meliodas gesehen und habe dies auch nie erwartet. Schade um das Geld.
-
design sieht nicht gut aus, sorry ~
-
Gibt es auch einen Grund dazu oder willst du wieder nur "Beiträge" sammeln? xD
sieht einfach kacke aus!
-
finde ich nicht schön
-
Wie kommst du darauf, das im letzten Forum überhaupt zu posten statt in einem spezialisierteren? Ganz schön naiv
So eine dämliche Aussage hab ich seit langem nicht mehr hier gelesen. Was ein bullshit.
Anmerkung: Es gibt Menschen hier in diesem Forum, die 20+ sind und sich im Leben weitergebildet haben und EVENTUELL dieser Person helfen können, da SIE sich eben auf diese Dinge "spezialisiert" haben.