Giter Club home page Giter Club logo

godot-asset-library's Introduction

Godot's Asset Library


Note: This asset library backend and frontend is now in maintenance mode. Feel free to submit bug fixes and small improvements, but please refrain from working on large features. In the future, the Godot Foundation's asset store will deprecate this library.


REST API and frontend for Godot Engine's official asset library.

Endpoints

Installation

Run the following commands to get a running installation of the project:

composer install
cp src/settings-local-example.php src/settings-local.php

Now you should proceed to update src/settings-local.php with your DB password and session secret.

Browser support

When working on new features, keep in mind this website only supports evergreen browsers:

  • Chrome (latest version and N-1 version)
  • Edge (latest version and N-1 version)
  • Firefox (latest version, N-1 version, and latest ESR version)
  • Opera (latest version and N-1 version)
  • Safari (latest version and N-1 version)

Internet Explorer isn't supported.

godot-asset-library's People

Contributors

aaronfranke avatar akien-mga avatar alketii avatar bojidar-bg avatar brunosxs avatar calinou avatar coppolaemilio avatar dependabot[bot] avatar docyx avatar dsnopek avatar gramps avatar hasa1002 avatar merumelu avatar mhilbrunner avatar mhillier98 avatar mithil467 avatar paulhocker avatar piralein avatar ryneandal avatar seanlyons avatar snoopdouglas avatar t-karcher avatar tomwor avatar winston-yallow avatar yeldhamdev avatar yurisizov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

godot-asset-library's Issues

Fatal error when editing the asset's URL

I edited my submission to give it a different download URL, then I got this when I validated:

Fatal error: Using $this when not in object context in /data/web/df/e1/53/godotengine.org/htdocs/asset-library/src/routes/asset_edit.php on line 12

Support Markdown or BBCode for asset descriptions

Markdown or BBCode should be supported in asset descriptions. See below for a comparison of each. Perhaps the asset store could use Markdown, and convert it to BBCode when needed for Godot's purposes.

Markdown

Upsides

  • Simple to use
  • Widely used and supported

Downsides

  • Currently not supported by Godot

BBCode

Upsides

  • Supported by Godot through the RichTextLabel node

Downsides

  • Not as easy to read and write as Markdown
  • Not very popular today

Check for XSS in templates

I've looked a little at code and I don't see any usage of htmlspecialchars() nor regexps for escaping HTML/JS - does it mean, that every user can put their own JS (including trojan horse, etc.) into asset name/describtion/etc?

Update copyright in license and frontend footer

We discussed it on #kobuge but I don't remember what was the consensus.

Currently the copyright mention in the license says:

Copyright (c) 2016 Alket Rexhepi

But it should definitely mention at least Bojidar Marinov and/or be made more generic by referring to Godot itself (e.g. "The Godot Engine community" / "The Godot Engine developers").

Some possibilities:

Copyright (c) 2016 Alket Rexhepi, Bojidar Marinov and the Godot community
Copyright (c) 2016 The Godot Engine community
Copyright (c) 2016 The Godot Engine developers
Copyright (c) 2016 Godot Engine Project
Copyright (c) 2016 Juan Linietsky, Ariel Manzur // like Godot, but wouldn't be fair to @alketii and @bojidar-bg I guess

Suggestions?

The copyright mention in the frontend footer should also be adapted accordingly.

Hash zips to ensure that the same thing is downloaded

We should hash the zips on submit, and store the hash in the DB. Then, the downloading client wil be able to ensure that the correct zip was downloaded, and not some changed one.

The hash algorithm is to be sha-256, though we are open to suggestions if you have some (@est31 ๐Ÿ˜‰)

Error while updating the URLs of the images/video

As I was editing the submission I sent some minutes earlier, I got this error:

{"id":"23","url":"asset\/edit\/23"}<br />
<b>Notice</b>:  Undefined offset: 0 in <b>/data/web/df/e1/53/godotengine.org/htdocs/asset-library/src/routes/asset_edit.php</b> on line <b>370</b><br />

I was just updating the URLs of the images and video (logo, video and thumbnail) as I copied the URL wrongly.

composer.json is missing dependencies

For some reason two dependencies, slim/php-view and monolog/monolog, are only listed in composer.lock but not in composer.json itself. composer install works, as the lock file has priority there but if someone ever decides to run composer update those dependencies would get removed from the project.

Remove the extraneous "/frontend" part of the URL

When accessing https://godotengine.org/asset-library, users should land directly on the frontend without having to use https://godotengine.org/asset-library/frontend.

A redirect could easily be done, but the better solution would be to remove/hide the /frontend part of the URL, as it's pretty obvious that https://godotengine.org/asset-library would be a web-based frontend (the api can of course stay as /api).

It looks like we just need to move the index.php and .htaccess and likely fix some relative paths.

Add possibility to change password

Related to #37.

Might be made obsolete if we decide to implement third party login providers (GitHub, OpenID, Facebook, etc.) and drop our own registration form.

Information about the fact that edit need to wait for approval before it will be live

When editing description, or adding screens to existing asset on the store, it would be great if after clicking submit changes on the next page there was an information about change need to be approval before it goes life. Currently It's a little confusing since we can see something that looks like a preview of a changes but there is no information on how to publish them :)

Tools category is visible as script in preview when uploading new plugin

When I was creating new asset, I checked category as 'tool'. In preview I got 'scripts'. So I clicked Revise and then I was seeing it's under tools once again. Was thinking it's shifted once place so I choose 'materials' to see what's going on. When I accepted edit, I got some text error (unfortunately I ddint save it).

Algorithm for creating session tokens is pretty bad

Currently, an attacker just needs to guess the secret, after which he would be able to create session tokens for any existing user, as long as he knows the id.

I guess user_id-based tokens should be dropped, and only session tokens be given.

Add option to see both projects and addons

Currently, to see addons, you would go to api/asset, and to see only projects, you would go to api/asset?type=project... without any way to see both.

(opening in order not to forget this)

Error when revising submission

I submitted an entry for my asset, then if I click "revise" I get this:

Notice: Undefined index: original in /data/web/df/e1/53/godotengine.org/htdocs/asset-library/templates/edit_asset_edit.phtml on line 2

Warning: array_merge(): Argument #1 is not an array in /data/web/df/e1/53/godotengine.org/htdocs/asset-library/templates/edit_asset_edit.phtml on line 2

Automatic hash generation

Currently, as done in 25809e0, the asset's hash would be set manually by the moderator on asset accept, which isn't too good in the long run. We should either proxy asset zips and construct the hash while resending it, or downloading the zip and having mods ensure that they've downloaded the same zip.

Can't get past the diff view

When I edit my terrain editor on the website, I can submit and see a diff, but nothing tells me what's next. The only option is to "revise". If I leave the page it seems I loose all the edits and have to fill the form again. Is there a missing button? Otherwise, maybe it's a missing notification?

Missing icons (unicode characters?)

As seen on Mageia 6 with Firefox ESR 45.3.0.

spectacle c19786
spectacle k19786

I don't know if it's a regression, it's the first time I see it but it might be that previously I had always been using Chrome/Windows 7, thus it could just be a font issue.

Newlines are not properly parsed in asset description

See e.g. https://godotengine.org/asset-library/frontend/asset/2

It's description is:

The Logger class is a GDScript singleton that provides a logging API for Godot projects.

It allows logging messages with different levels (error, warning, info, debug, verbose) and user-defined modules/channels. The output can be done to the console/terminal, to files, or to a configurable buffer that can be retrieved and displayed in game.

**Important:** The current version is a work in progress, and the API *will* evolve in the near future until a version 1.0 is tagged.

But it shows as:
image

Supporting basic Markdown would be awesome too, but that's another topic ;)

Implement rating in the backend

Currently, there is no way users can change the rating of an asset. We should implement some way to do it though (and disallow double rating, etc.).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.