Minetest Content Database

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Minetest Content Database

by SonosFuer » Fri Jul 21, 2017 02:46

I have a Minetest content database website currently in progress, essentially it will allow searching of all of the mods, skins, texture packs, and other content for Minetest. It is being written in Python / Django If you are interested in checking it out I am interested in collaborating on it, you can check it out at https://github.com/apachano/minetestdb *note at this stage it is very rough. If you have any ideas for it please post below.

I am also setting up discussions for feature / function details over here to stay organized https://github.com/apachano/minetestdb/issues

Here are some pictures of what I have so far
Login Page
+ Spoiler

Servers List
+ Spoiler

Server Information
+ Spoiler

Create Server Listing
+ Spoiler

Mod List
+ Spoiler
Last edited by SonosFuer on Fri Aug 18, 2017 17:51, edited 14 times in total.
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
octacian
Member
 
Posts: 594
Joined: Mon Dec 21, 2015 22:18
Location: Canada
GitHub: octacian
IRC: octacian
In-game: octacian

Re: Minetest Content Database

by octacian » Fri Jul 21, 2017 13:52

Nice! It's really encouraging to see someone go and try to tackle such a large task as this. In fact, not too long ago, I was developing my own website like this - called the Minetest Content Database (or, Minetest CDB). I was also planning to work with rubenwardy on his "webstore," however, I was never able to do either. So, a few suggestions after looking at your screenshot.

Try using the Bootstrap library and custom CSS used on the official Minetest website in order to make things fit in. I'd also suggest that you plan on implementing some sort of user system in order to allow users to create mod "topics" directly from the website, rather than depending on the forums as many sites do now. Also, keep in mind that the site will need to have some sort of API that Minetest could query in order to retrieve mods.

There were some more things I noticed while looking at the screenshot, but I've forgotten what they were. Anyways, in concept, looking good! However, you really need to improve the styling, preferably to be the same as the official site.
MicroExpansion, Working Computers, All Projects - Check out my YouTube channel! (octacian)
I'm currently inactive in the Minetest community! So if I don't respond, that's why.
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Sun Jul 23, 2017 18:39

It is definitely a large project, I alone will take a long time to actually get it done. I intend on including a login system so developers can manage their own mod pages. I don't think I am going to include a script to parse the forums It would end up being a bigger mess than its worth. I just cant figure out how I want to approach user logins. So far I have looked over userspice and userfrosting for user management. I have also considered coding it myself but that is a big task and will lack security.
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
rubenwardy
Moderator
 
Posts: 5752
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

Re: Minetest Content Database

by rubenwardy » Sun Jul 23, 2017 18:47

For reference, here are previous attempts:


The most complete one is the Minetest Mod Database - it has support for forum logins, and was hosted on minetest.net for a while until due to political reasons it was taken down (the person hosting forums.minetest.net couldn't be bothered to maintain it as they were working on a fork of Minetest, and then celeron55 took over hosting and couldn't be bothered to set it up)

Here are a list of requirements:

  • Must work with whatever database celeron55 uses
  • Must support server mods, client mods, and subgames
  • Python or PHP is recommended, most people tend to hate other technologies
  • Must provide a RESTful JSON API
  • Must be secure
  • Must have a normalised database
  • Must have an open source license
  • Must be maintainable if you disappear
  • Must allow users other than the author to add mods (even if it requires a privilege)

If you are to use PHP (which I don't recommend), I highly suggest using a PHP framework rather than raw PHP. It makes it considerably more maintainable, and stops you reinventing the wheel for things like user logins and permissions. It also fails the maintainability requirement as nobody will want to maintain a raw PHP project.

Also, this is the first post's image for those that dislike Google drive (or don't want to have to click a link)

Image
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Mon Jul 24, 2017 06:01

Thanks for the help rubenwardy, I think I am going to learn Python and Django to do this project, I personally have never been a fan of PHP frameworks and from what I have read I will get along with Python really well.

Hopefully I will have a solid update in the next week.
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Wed Aug 02, 2017 20:34

After justifying the amount of time that I spend on this project as "Furthering my education" I present to you my crappy update.I have a website coded in Python using Django, it uses Django-Bootstrap3 (an app that just implements bootstrap) and a my-sql server. (I have not found out what celeron55 uses but Django makes it easy to switch that around)

Here is a screen shot of what it looks like so far
[img]
Capture.PNG
[/img]
If you know Django and want to see what I have coded head over to this new git hub repository https://github.com/apachano/minetestdb As I literally just learned Python and Django over the last week helpful coding suggestions are more than welcome.

Next on my todo list is implementing Djangos user system and figuring out how to add tags to the server classes in an efficient way to assist in sorting.
Attachments
Capture.PNG
(21.84 KiB) Not downloaded yet
Last edited by SonosFuer on Tue Aug 08, 2017 18:32, edited 2 times in total.
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
octacian
Member
 
Posts: 594
Joined: Mon Dec 21, 2015 22:18
Location: Canada
GitHub: octacian
IRC: octacian
In-game: octacian

Re: Minetest Content Database

by octacian » Wed Aug 02, 2017 20:57

Wow! Now that's some progress :D You've now made it as far as I ever did with making a content DB :rofl:

I've never really gotten a chance to get very experienced in either Python or Django, but after looking at some of your code, I'm definitely going to make a point of learning some more in-depth whilst on my 2-month MT break.

Also, I'm not sure that the "-" is needed for the "Sub-Games" menu item. I typically just say "Subgames," but maybe that is the better way to say it...
MicroExpansion, Working Computers, All Projects - Check out my YouTube channel! (octacian)
I'm currently inactive in the Minetest community! So if I don't respond, that's why.
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Sat Aug 05, 2017 22:04

I am stuck on something and I am looking for help with this. I have a view that displays the list of tags for the servers. I simplified the code to make it more portable but there is one bug where the panel heading is displaying variable values and not variable names (I know like it is supposed to). I want to figure out how to make it display the variable names. Here is a screen shot of the actual page.

Image

Here is the code (You can see more on git hub, i posted it)
Code: Select all
def index(request):
    current_server_list = Server.objects.all()
    tags = Tag.objects.all()
    mt_version = ["0.4.16", "0.5.0"]
    subgame = 0
    filters = [tags, mt_version, subgame]

    context = {'current_server_list': current_server_list,
               'filters': filters}
    return render(request, 'servers/index.html', context)


This is the code from the template.

Code: Select all
                <form>
                    {% for ftype in filters %}
                        {%  if ftype %}
                            <div class="form-group">
                                <div class="panel panel-default">
                                    <div class="panel-heading">{{ ftype }} </div>
                                    <div class="panel-body">
                                        {% for filter in ftype %}
                                            <div class="checkbox">
                                                <label><input type="checkbox">{{ filter }}</label>
                                            </div>
                                        {% endfor %}
                                    </div>
                                </div>
                            </div>
                        {% endif %}
                    {% endfor %}
                </form>
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
rubenwardy
Moderator
 
Posts: 5752
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

Re: Minetest Content Database

by rubenwardy » Sat Aug 05, 2017 22:46

try

Code: Select all
{% for ftypename, ftype in filters.items %}


instead of

Code: Select all
{% for ftype in filters %}


then use

Code: Select all
<div class="panel-heading">{{ ftypename }} </div>


instead of

Code: Select all
<div class="panel-heading">{{ ftype }} </div>
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Sun Aug 06, 2017 00:30

It doesn't load with that

Image.
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
rubenwardy
Moderator
 
Posts: 5752
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

Re: Minetest Content Database

by rubenwardy » Sun Aug 06, 2017 00:39

Well, I suggest looking at the html it generated. The fact it didn't crash indicates that it's working somehow.
If nothing is generated, try printing out ftype and ftypename just under the for loop
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Sun Aug 06, 2017 01:12

The for loop is not executing at all because filters.items does not exist.
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
rubenwardy
Moderator
 
Posts: 5752
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

Re: Minetest Content Database

by rubenwardy » Sun Aug 06, 2017 01:29

Ah, it's because it's an array not a dictionary

You need to change filters in python to be a dictionary from the panel title to the list of options
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Sun Aug 06, 2017 05:46

Got it working, thank you!
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Sun Aug 06, 2017 08:48

UPDATE
I have the servers page mostly functional, it does not save check boxes after it filters but that is not critical (just annoying). I am happy with the servers list page although I want suggestions on how it should be changed. Here is a screen shot of the page.
Image
Last edited by SonosFuer on Mon Aug 07, 2017 02:28, edited 1 time in total.
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
webdesigner97
Member
 
Posts: 1325
Joined: Mon Jul 30, 2012 19:16
Location: Bergisch Gladbach, Germany
GitHub: webD97
IRC: webdesigner97
In-game: webdesigner97

Re: Minetest Content Database

by webdesigner97 » Sun Aug 06, 2017 21:00

I think Minetest needs a proper package manager, with a web interface, online storage, an ingame GUI and a CLI (like npm). We had nice attempts before, but I think there should be a more or less official project for this :)
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Mon Aug 07, 2017 00:18

webdesigner97 wrote:I think Minetest needs a proper package manager, with a web interface, online storage, an ingame GUI and a CLI (like npm). We had nice attempts before, but I think there should be a more or less official project for this :)

I agree with you, in the future I would like to build my own launcher that handles all of this (probably will interface with my database) but that is a long ways out as I have a lot of other projects on my mind (and those stupid job and school things that keep getting in the way). What it ultimately comes down to is having someone willing to put in the effort.
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
octacian
Member
 
Posts: 594
Joined: Mon Dec 21, 2015 22:18
Location: Canada
GitHub: octacian
IRC: octacian
In-game: octacian

Re: Minetest Content Database

by octacian » Mon Aug 07, 2017 00:20

SonosFuer wrote:I am happy with the servers list page although I want suggestions on how it should be changed.


  • Server links should be <a> elements
  • Server flags should could use some improvement, maybe use Bootstrap labels or pagination (minus the previous and next buttons of course)
  • "Mt_Version" should be "Minetest Version"
  • "Apply Filters" button should use Bootstrap as well

webdesigner97 wrote:I think Minetest needs a proper package manager, with a web interface, online storage, an ingame GUI and a CLI (like npm). We had nice attempts before, but I think there should be a more or less official project for this :)


uhh, Isn't that sorta what this is? :P Although it's not official yet, it's an incredible start, and IMO has a good chance of later becoming official

SonosFuer wrote:I agree with you, in the future I would like to build my own launcher that handles all of this (probably will interface with my database) but that is a long ways out as I have a lot of other projects on my mind (and those stupid job and school things that keep getting in the way). What it ultimately comes down to is having someone willing to put in the effort.


I thought long and hard about making a launcher, and even started working on one, but I've come to the conclusion that features such as content store connectivity should be implemented right within the Minetest main menu. And BTW, I'm hoping to have several main menu improvements ready for 0.5 ;)
MicroExpansion, Working Computers, All Projects - Check out my YouTube channel! (octacian)
I'm currently inactive in the Minetest community! So if I don't respond, that's why.
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Mon Aug 07, 2017 02:27

octacian wrote:[*]Server links should be <a> elements

Do you mean the server addresses? except for Hometown none of them actually mean anything to a browser, they are the addresses you put into the client. I will post a screen of it once I get a bit more styling done but there is a link to their forums post (or in hometowns case their private forums) in the server display page. Once I get that screen let me know what you think.
octacian wrote:[*]Server flags should could use some improvement, maybe use Bootstrap labels or pagination (minus the previous and next buttons of course)

I am going with labels, I still need to tinker because they dont look quite right but the idea is there. (Updated screen shot)
octacian wrote:[*]"Mt_Version" should be "Minetest Version"

Django is nice, that eas an easy fix and would have been a nightmare in php with how I have it set up.
octacian wrote:[*]"Apply Filters" button should use Bootstrap as well[/list]

Done!
octacian wrote:I thought long and hard about making a launcher, and even started working on one, but I've come to the conclusion that features such as content store connectivity should be implemented right within the Minetest main menu. And BTW, I'm hoping to have several main menu improvements ready for 0.5 ;)

The way I was going to do it would be considered a fork of mine test, I wanted to modify the original launcher to support version control and pull the actual game side of things from the git server. Then it would have a link on this database where you click a mod or server and it loads the game and installs it. Lots of fancy ideas but the bottom line is I have a lot of studying about the engine to do before I even try.
Last edited by SonosFuer on Mon Aug 07, 2017 03:50, edited 1 time in total.
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Mon Aug 07, 2017 03:49

UPDATE - Server Details Page
I want to show off the details page I have been working on (not knowing django or bootstrap this is a much bigger accomplishment for me than it looks) I am absolutely looking for feedback on this. If anyone knows how to interface with server statuses that would also be helpful (players / max players, server signal, etc)
Image
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
octacian
Member
 
Posts: 594
Joined: Mon Dec 21, 2015 22:18
Location: Canada
GitHub: octacian
IRC: octacian
In-game: octacian

Re: Minetest Content Database

by octacian » Mon Aug 07, 2017 04:44

Suggestions regarding server information panels:
  • Description
  • Rules
  • Mods (this might be able to be grabbed automatically)
  • Players (can get this from servers.minetest.net if server_announce is on)
  • Server specifications (just for fun :D)
  • Comments (essentially reviews)

Yes, I know that the above requests are quite numerous, but I just wanted to throw them out there.
MicroExpansion, Working Computers, All Projects - Check out my YouTube channel! (octacian)
I'm currently inactive in the Minetest community! So if I don't respond, that's why.
 

User avatar
rubenwardy
Moderator
 
Posts: 5752
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

Re: Minetest Content Database

by rubenwardy » Mon Aug 07, 2017 11:35

I think that you should get mods working first, as we already have a server list server. Also, we used to have an in-game mod store, it would be worth reviving that if so. (Don't worry about that, just make a nice rest API)
 

User avatar
sorcerykid
Member
 
Posts: 1061
Joined: Fri Aug 26, 2016 15:36
Location: Illinois, USA
GitHub: sorcerykid
In-game: Nemo

Re: Minetest Content Database

by sorcerykid » Mon Aug 07, 2017 16:43

SonosFuer wrote:
octacian wrote:[*]Server links should be <a> elements

Do you mean the server addresses? except for Hometown none of them actually mean anything to a browser, they are the addresses you put into the client. I will post a screen of it once I get a bit more styling done but there is a link to their forums post (or in hometowns case their private forums) in the server display page. Once I get that screen let me know what you think.


Is that true? I pointed my Web browser to arklegacy.duckdns.org which is the server address of Must Test, and it takes me to a Web page. Glancing through the list at servers.minetest.net, this appears to be the case of quit a lot of servers in fact, certainly not just Hometown.

Edit: I take it there will be more than 4 servers, and that the listings will editable by server owners themselves.
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Mon Aug 07, 2017 17:02

rubenwardy wrote:I think that you should get mods working first, as we already have a server list server. Also, we used to have an in-game mod store, it would be worth reviving that if so. (Don't worry about that, just make a nice rest API)

While I develop this I am trying (*doing a poor job but trying) to make the code all universal, I wanted the difference between the mods page and servers page to just the the content. This took me about a half hour but all I did was make a copy of the servers page, rename everything that said servers to mods (changed server address to author name and other minor fixes) and put some content in that database.
Image
You bringing that up and me making this view does inspire me to condense a lot of the code that is redundant across the apps as I realize how the code can be condensed with some data structures and generic names.
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

User avatar
SonosFuer
Member
 
Posts: 104
Joined: Sun Jul 09, 2017 00:32
GitHub: apachano
IRC: SonosFuer
In-game: SonosFuer

Re: Minetest Content Database

by SonosFuer » Mon Aug 07, 2017 17:13

octacian wrote:Suggestions regarding server information panels:
  • Description
  • Rules
  • Mods (this might be able to be grabbed automatically)
  • Players (can get this from servers.minetest.net if server_announce is on)
  • Server specifications (just for fun :D)
  • Comments (essentially reviews)

Yes, I know that the above requests are quite numerous, but I just wanted to throw them out there.


I am looking for numerous requests :P I can build an app with a basic concept but my brain crashes on the details.

Description is the big chunk of text in the middle, and on the listings page I truncate the description to 250 chars. As far as rules I figured I would let that stay in the description for the sake of simpler code but if you think a separate built in heading would be better it would not be that hard to add, let me know what you are thinking about that.

Mods should be easy, especially once the Mods DB is properly implemented and easy to pull from, I just have to figure out checking if the listed mod is in the db or hosted else where to provide proper linkage.

As far as players and server stats,.I really don't want to parse from the website if I can avoid it. The website gets the information from the server itself and that is the connection I want to get stats from to improve performance.

Comments, I want to add this and have made a few attempts at it, ultimately I believe the best way would be to integrate a forums application into the site but that has proven to be difficult, definitely on the list for when I am better at Django.

Loving the feedback! I hope this turns into something good.
Working on a content database for minetest mods, servers, and etc Check it out and give me feedback at https://forum.minetest.net/viewtopic.php?f=14&t=18137
 

Next

Return to Minetest-related projects



Who is online

Users browsing this forum: No registered users and 1 guest