inital commit
This commit is contained in:
commit
44036e57e9
|
@ -0,0 +1,2 @@
|
|||
.idea
|
||||
__pycache__
|
|
@ -0,0 +1,25 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from .models import Accounts, Players, Towns
|
||||
|
||||
class AccountsAdmin(admin.ModelAdmin):
|
||||
list_display = ('name',)
|
||||
fields = ['name', 'password', 'type', 'email']
|
||||
|
||||
class PlayersAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'account',)
|
||||
fields = [
|
||||
'name', 'group_id', 'account', 'level', 'vocation',
|
||||
'health', 'healthmax', 'maglevel', 'mana', 'manamax',
|
||||
'town_id', 'posx', 'posy', 'posz', 'cap', 'sex', 'balance',
|
||||
'skill_fist', 'skill_club', 'skill_sword', 'skill_axe',
|
||||
'skill_dist', 'skill_shielding',
|
||||
'skill_fishing',
|
||||
]
|
||||
|
||||
class TownsAdmin(admin.ModelAdmin):
|
||||
list_display = ('name',)
|
||||
|
||||
admin.site.register(Accounts, AccountsAdmin)
|
||||
admin.site.register(Players, PlayersAdmin)
|
||||
admin.site.register(Towns, TownsAdmin)
|
|
@ -0,0 +1,5 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class AccountsConfig(AppConfig):
|
||||
name = 'accounts'
|
|
@ -0,0 +1,436 @@
|
|||
# Generated by Django 2.1.5 on 2019-01-20 14:24
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='AccountBanHistory',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('reason', models.CharField(max_length=255)),
|
||||
('banned_at', models.BigIntegerField()),
|
||||
('expired_at', models.BigIntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'account_ban_history',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Accounts',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=32, unique=True)),
|
||||
('password', models.CharField(max_length=40)),
|
||||
('secret', models.CharField(blank=True, max_length=16, null=True)),
|
||||
('type', models.IntegerField()),
|
||||
('premdays', models.IntegerField()),
|
||||
('lastday', models.PositiveIntegerField()),
|
||||
('email', models.CharField(max_length=255)),
|
||||
('creation', models.IntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'accounts',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='AccountViplist',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('description', models.CharField(max_length=128)),
|
||||
('icon', models.PositiveIntegerField()),
|
||||
('notify', models.IntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'account_viplist',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='GuildRanks',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=255)),
|
||||
('level', models.IntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'guild_ranks',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Guilds',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=255, unique=True)),
|
||||
('creationdata', models.IntegerField()),
|
||||
('motd', models.CharField(max_length=255)),
|
||||
],
|
||||
options={
|
||||
'db_table': 'guilds',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='GuildwarKills',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('killer', models.CharField(max_length=50)),
|
||||
('target', models.CharField(max_length=50)),
|
||||
('killerguild', models.IntegerField()),
|
||||
('targetguild', models.IntegerField()),
|
||||
('time', models.BigIntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'guildwar_kills',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='GuildWars',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('guild1', models.IntegerField()),
|
||||
('guild2', models.IntegerField()),
|
||||
('name1', models.CharField(max_length=255)),
|
||||
('name2', models.CharField(max_length=255)),
|
||||
('status', models.IntegerField()),
|
||||
('started', models.BigIntegerField()),
|
||||
('ended', models.BigIntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'guild_wars',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='HouseLists',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('listid', models.IntegerField()),
|
||||
('list', models.TextField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'house_lists',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Houses',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('owner', models.IntegerField()),
|
||||
('paid', models.PositiveIntegerField()),
|
||||
('warnings', models.IntegerField()),
|
||||
('name', models.CharField(max_length=255)),
|
||||
('rent', models.IntegerField()),
|
||||
('town_id', models.IntegerField()),
|
||||
('bid', models.IntegerField()),
|
||||
('bid_end', models.IntegerField()),
|
||||
('last_bid', models.IntegerField()),
|
||||
('highest_bidder', models.IntegerField()),
|
||||
('size', models.IntegerField()),
|
||||
('beds', models.IntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'houses',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='IpBans',
|
||||
fields=[
|
||||
('ip', models.PositiveIntegerField(primary_key=True, serialize=False)),
|
||||
('reason', models.CharField(max_length=255)),
|
||||
('banned_at', models.BigIntegerField()),
|
||||
('expires_at', models.BigIntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'ip_bans',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MarketHistory',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('sale', models.IntegerField()),
|
||||
('itemtype', models.PositiveIntegerField()),
|
||||
('amount', models.PositiveSmallIntegerField()),
|
||||
('price', models.PositiveIntegerField()),
|
||||
('expires_at', models.BigIntegerField()),
|
||||
('inserted', models.BigIntegerField()),
|
||||
('state', models.PositiveIntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'market_history',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MarketOffers',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('sale', models.IntegerField()),
|
||||
('itemtype', models.PositiveIntegerField()),
|
||||
('amount', models.PositiveSmallIntegerField()),
|
||||
('created', models.BigIntegerField()),
|
||||
('anonymous', models.IntegerField()),
|
||||
('price', models.PositiveIntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'market_offers',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PlayerDeaths',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('time', models.BigIntegerField()),
|
||||
('level', models.IntegerField()),
|
||||
('killed_by', models.CharField(max_length=255)),
|
||||
('is_player', models.IntegerField()),
|
||||
('mostdamage_by', models.CharField(max_length=100)),
|
||||
('mostdamage_is_player', models.IntegerField()),
|
||||
('unjustified', models.IntegerField()),
|
||||
('mostdamage_unjustified', models.IntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'player_deaths',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PlayerDepotitems',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('sid', models.IntegerField()),
|
||||
('pid', models.IntegerField()),
|
||||
('itemtype', models.SmallIntegerField()),
|
||||
('count', models.SmallIntegerField()),
|
||||
('attributes', models.TextField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'player_depotitems',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PlayerInboxitems',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('sid', models.IntegerField()),
|
||||
('pid', models.IntegerField()),
|
||||
('itemtype', models.SmallIntegerField()),
|
||||
('count', models.SmallIntegerField()),
|
||||
('attributes', models.TextField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'player_inboxitems',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PlayerItems',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('pid', models.IntegerField()),
|
||||
('sid', models.IntegerField()),
|
||||
('itemtype', models.SmallIntegerField()),
|
||||
('count', models.SmallIntegerField()),
|
||||
('attributes', models.TextField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'player_items',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Players',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=255, unique=True)),
|
||||
('group_id', models.IntegerField()),
|
||||
('level', models.IntegerField()),
|
||||
('vocation', models.IntegerField()),
|
||||
('health', models.IntegerField()),
|
||||
('healthmax', models.IntegerField()),
|
||||
('experience', models.BigIntegerField()),
|
||||
('lookbody', models.IntegerField()),
|
||||
('lookfeet', models.IntegerField()),
|
||||
('lookhead', models.IntegerField()),
|
||||
('looklegs', models.IntegerField()),
|
||||
('looktype', models.IntegerField()),
|
||||
('lookaddons', models.IntegerField()),
|
||||
('maglevel', models.IntegerField()),
|
||||
('mana', models.IntegerField()),
|
||||
('manamax', models.IntegerField()),
|
||||
('manaspent', models.PositiveIntegerField()),
|
||||
('soul', models.PositiveIntegerField()),
|
||||
('town_id', models.IntegerField()),
|
||||
('posx', models.IntegerField()),
|
||||
('posy', models.IntegerField()),
|
||||
('posz', models.IntegerField()),
|
||||
('conditions', models.TextField()),
|
||||
('cap', models.IntegerField()),
|
||||
('sex', models.IntegerField()),
|
||||
('lastlogin', models.BigIntegerField()),
|
||||
('lastip', models.PositiveIntegerField()),
|
||||
('save', models.IntegerField()),
|
||||
('skull', models.IntegerField()),
|
||||
('skulltime', models.IntegerField()),
|
||||
('lastlogout', models.BigIntegerField()),
|
||||
('blessings', models.IntegerField()),
|
||||
('onlinetime', models.IntegerField()),
|
||||
('deletion', models.BigIntegerField()),
|
||||
('balance', models.BigIntegerField()),
|
||||
('offlinetraining_time', models.PositiveSmallIntegerField()),
|
||||
('offlinetraining_skill', models.IntegerField()),
|
||||
('stamina', models.PositiveSmallIntegerField()),
|
||||
('skill_fist', models.PositiveIntegerField()),
|
||||
('skill_fist_tries', models.BigIntegerField()),
|
||||
('skill_club', models.PositiveIntegerField()),
|
||||
('skill_club_tries', models.BigIntegerField()),
|
||||
('skill_sword', models.PositiveIntegerField()),
|
||||
('skill_sword_tries', models.BigIntegerField()),
|
||||
('skill_axe', models.PositiveIntegerField()),
|
||||
('skill_axe_tries', models.BigIntegerField()),
|
||||
('skill_dist', models.PositiveIntegerField()),
|
||||
('skill_dist_tries', models.BigIntegerField()),
|
||||
('skill_shielding', models.PositiveIntegerField()),
|
||||
('skill_shielding_tries', models.BigIntegerField()),
|
||||
('skill_fishing', models.PositiveIntegerField()),
|
||||
('skill_fishing_tries', models.BigIntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'players',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PlayersOnline',
|
||||
fields=[
|
||||
('player_id', models.IntegerField(primary_key=True, serialize=False)),
|
||||
],
|
||||
options={
|
||||
'db_table': 'players_online',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PlayerSpells',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=255)),
|
||||
],
|
||||
options={
|
||||
'db_table': 'player_spells',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ServerConfig',
|
||||
fields=[
|
||||
('config', models.CharField(max_length=50, primary_key=True, serialize=False)),
|
||||
('value', models.CharField(max_length=256)),
|
||||
],
|
||||
options={
|
||||
'db_table': 'server_config',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TileStore',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('data', models.TextField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'tile_store',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Towns',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=255, unique=True)),
|
||||
('posx', models.IntegerField()),
|
||||
('posy', models.IntegerField()),
|
||||
('posz', models.IntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'towns',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='AccountBans',
|
||||
fields=[
|
||||
('account', models.OneToOneField(on_delete=django.db.models.deletion.DO_NOTHING, primary_key=True, serialize=False, to='accounts.Accounts')),
|
||||
('reason', models.CharField(max_length=255)),
|
||||
('banned_at', models.BigIntegerField()),
|
||||
('expires_at', models.BigIntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'account_bans',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='GuildInvites',
|
||||
fields=[
|
||||
('player', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, primary_key=True, serialize=False, to='accounts.Players')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'guild_invites',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='GuildMembership',
|
||||
fields=[
|
||||
('player', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, primary_key=True, serialize=False, to='accounts.Players')),
|
||||
('nick', models.CharField(max_length=15)),
|
||||
],
|
||||
options={
|
||||
'db_table': 'guild_membership',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PlayerNamelocks',
|
||||
fields=[
|
||||
('player', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, primary_key=True, serialize=False, to='accounts.Players')),
|
||||
('reason', models.CharField(max_length=255)),
|
||||
('namelocked_at', models.BigIntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'player_namelocks',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PlayerStorage',
|
||||
fields=[
|
||||
('player', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, primary_key=True, serialize=False, to='accounts.Players')),
|
||||
('key', models.PositiveIntegerField()),
|
||||
('value', models.IntegerField()),
|
||||
],
|
||||
options={
|
||||
'db_table': 'player_storage',
|
||||
'managed': False,
|
||||
},
|
||||
),
|
||||
]
|
|
@ -0,0 +1,384 @@
|
|||
# This is an auto-generated Django model module.
|
||||
# You'll have to do the following manually to clean this up:
|
||||
# * Rearrange models' order
|
||||
# * Make sure each model has one field with primary_key=True
|
||||
# * Make sure each ForeignKey has `on_delete` set to the desired behavior.
|
||||
# * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
|
||||
# Feel free to rename the models, but don't rename db_table values or field names.
|
||||
from django.db import models
|
||||
|
||||
|
||||
class AccountBanHistory(models.Model):
|
||||
account = models.ForeignKey('Accounts', models.DO_NOTHING)
|
||||
reason = models.CharField(max_length=255)
|
||||
banned_at = models.BigIntegerField()
|
||||
expired_at = models.BigIntegerField()
|
||||
banned_by = models.ForeignKey('Players', models.DO_NOTHING, db_column='banned_by')
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'account_ban_history'
|
||||
|
||||
|
||||
class AccountBans(models.Model):
|
||||
account = models.OneToOneField('Accounts', models.DO_NOTHING, primary_key=True)
|
||||
reason = models.CharField(max_length=255)
|
||||
banned_at = models.BigIntegerField()
|
||||
expires_at = models.BigIntegerField()
|
||||
banned_by = models.ForeignKey('Players', models.DO_NOTHING, db_column='banned_by')
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'account_bans'
|
||||
|
||||
|
||||
class AccountViplist(models.Model):
|
||||
account = models.ForeignKey('Accounts', models.DO_NOTHING)
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING)
|
||||
description = models.CharField(max_length=128)
|
||||
icon = models.PositiveIntegerField()
|
||||
notify = models.IntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'account_viplist'
|
||||
unique_together = (('account', 'player'),)
|
||||
|
||||
|
||||
class Accounts(models.Model):
|
||||
name = models.CharField(unique=True, max_length=32)
|
||||
password = models.CharField(max_length=40)
|
||||
secret = models.CharField(max_length=16, blank=True, null=True)
|
||||
type = models.IntegerField(default=1)
|
||||
premdays = models.IntegerField(default=0)
|
||||
lastday = models.PositiveIntegerField(default=0)
|
||||
email = models.CharField(max_length=255)
|
||||
creation = models.IntegerField(default=0)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'accounts'
|
||||
|
||||
|
||||
class GuildInvites(models.Model):
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING, primary_key=True)
|
||||
guild = models.ForeignKey('Guilds', models.DO_NOTHING)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'guild_invites'
|
||||
unique_together = (('player', 'guild'),)
|
||||
|
||||
|
||||
class GuildMembership(models.Model):
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING, primary_key=True)
|
||||
guild = models.ForeignKey('Guilds', models.DO_NOTHING)
|
||||
rank = models.ForeignKey('GuildRanks', models.DO_NOTHING)
|
||||
nick = models.CharField(max_length=15)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'guild_membership'
|
||||
|
||||
|
||||
class GuildRanks(models.Model):
|
||||
guild = models.ForeignKey('Guilds', models.DO_NOTHING)
|
||||
name = models.CharField(max_length=255)
|
||||
level = models.IntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'guild_ranks'
|
||||
|
||||
|
||||
class GuildWars(models.Model):
|
||||
guild1 = models.IntegerField()
|
||||
guild2 = models.IntegerField()
|
||||
name1 = models.CharField(max_length=255)
|
||||
name2 = models.CharField(max_length=255)
|
||||
status = models.IntegerField()
|
||||
started = models.BigIntegerField()
|
||||
ended = models.BigIntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'guild_wars'
|
||||
|
||||
|
||||
class Guilds(models.Model):
|
||||
name = models.CharField(unique=True, max_length=255)
|
||||
ownerid = models.ForeignKey('Players', models.DO_NOTHING, db_column='ownerid', unique=True)
|
||||
creationdata = models.IntegerField()
|
||||
motd = models.CharField(max_length=255)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'guilds'
|
||||
|
||||
|
||||
class GuildwarKills(models.Model):
|
||||
killer = models.CharField(max_length=50)
|
||||
target = models.CharField(max_length=50)
|
||||
killerguild = models.IntegerField()
|
||||
targetguild = models.IntegerField()
|
||||
warid = models.ForeignKey(GuildWars, models.DO_NOTHING, db_column='warid')
|
||||
time = models.BigIntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'guildwar_kills'
|
||||
|
||||
|
||||
class HouseLists(models.Model):
|
||||
house = models.ForeignKey('Houses', models.DO_NOTHING)
|
||||
listid = models.IntegerField()
|
||||
list = models.TextField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'house_lists'
|
||||
|
||||
|
||||
class Houses(models.Model):
|
||||
owner = models.IntegerField()
|
||||
paid = models.PositiveIntegerField()
|
||||
warnings = models.IntegerField()
|
||||
name = models.CharField(max_length=255)
|
||||
rent = models.IntegerField()
|
||||
town_id = models.IntegerField()
|
||||
bid = models.IntegerField()
|
||||
bid_end = models.IntegerField()
|
||||
last_bid = models.IntegerField()
|
||||
highest_bidder = models.IntegerField()
|
||||
size = models.IntegerField()
|
||||
beds = models.IntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'houses'
|
||||
|
||||
|
||||
class IpBans(models.Model):
|
||||
ip = models.PositiveIntegerField(primary_key=True)
|
||||
reason = models.CharField(max_length=255)
|
||||
banned_at = models.BigIntegerField()
|
||||
expires_at = models.BigIntegerField()
|
||||
banned_by = models.ForeignKey('Players', models.DO_NOTHING, db_column='banned_by')
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'ip_bans'
|
||||
|
||||
|
||||
class MarketHistory(models.Model):
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING)
|
||||
sale = models.IntegerField()
|
||||
itemtype = models.PositiveIntegerField()
|
||||
amount = models.PositiveSmallIntegerField()
|
||||
price = models.PositiveIntegerField()
|
||||
expires_at = models.BigIntegerField()
|
||||
inserted = models.BigIntegerField()
|
||||
state = models.PositiveIntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'market_history'
|
||||
|
||||
|
||||
class MarketOffers(models.Model):
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING)
|
||||
sale = models.IntegerField()
|
||||
itemtype = models.PositiveIntegerField()
|
||||
amount = models.PositiveSmallIntegerField()
|
||||
created = models.BigIntegerField()
|
||||
anonymous = models.IntegerField()
|
||||
price = models.PositiveIntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'market_offers'
|
||||
|
||||
|
||||
class PlayerDeaths(models.Model):
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING)
|
||||
time = models.BigIntegerField()
|
||||
level = models.IntegerField()
|
||||
killed_by = models.CharField(max_length=255)
|
||||
is_player = models.IntegerField()
|
||||
mostdamage_by = models.CharField(max_length=100)
|
||||
mostdamage_is_player = models.IntegerField()
|
||||
unjustified = models.IntegerField()
|
||||
mostdamage_unjustified = models.IntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'player_deaths'
|
||||
|
||||
|
||||
class PlayerDepotitems(models.Model):
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING)
|
||||
sid = models.IntegerField()
|
||||
pid = models.IntegerField()
|
||||
itemtype = models.SmallIntegerField()
|
||||
count = models.SmallIntegerField()
|
||||
attributes = models.TextField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'player_depotitems'
|
||||
unique_together = (('player', 'sid'),)
|
||||
|
||||
|
||||
class PlayerInboxitems(models.Model):
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING)
|
||||
sid = models.IntegerField()
|
||||
pid = models.IntegerField()
|
||||
itemtype = models.SmallIntegerField()
|
||||
count = models.SmallIntegerField()
|
||||
attributes = models.TextField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'player_inboxitems'
|
||||
unique_together = (('player', 'sid'),)
|
||||
|
||||
|
||||
class PlayerItems(models.Model):
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING)
|
||||
pid = models.IntegerField()
|
||||
sid = models.IntegerField()
|
||||
itemtype = models.SmallIntegerField()
|
||||
count = models.SmallIntegerField()
|
||||
attributes = models.TextField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'player_items'
|
||||
|
||||
|
||||
class PlayerNamelocks(models.Model):
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING, primary_key=True)
|
||||
reason = models.CharField(max_length=255)
|
||||
namelocked_at = models.BigIntegerField()
|
||||
namelocked_by = models.ForeignKey('Players', models.DO_NOTHING, db_column='namelocked_by', related_name='namelocks')
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'player_namelocks'
|
||||
|
||||
|
||||
class PlayerSpells(models.Model):
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING)
|
||||
name = models.CharField(max_length=255)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'player_spells'
|
||||
|
||||
|
||||
class PlayerStorage(models.Model):
|
||||
player = models.ForeignKey('Players', models.DO_NOTHING, primary_key=True)
|
||||
key = models.PositiveIntegerField()
|
||||
value = models.IntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'player_storage'
|
||||
unique_together = (('player', 'key'),)
|
||||
|
||||
|
||||
class Players(models.Model):
|
||||
name = models.CharField(unique=True, max_length=255)
|
||||
group_id = models.IntegerField()
|
||||
account = models.ForeignKey(Accounts, models.DO_NOTHING)
|
||||
level = models.IntegerField()
|
||||
vocation = models.IntegerField()
|
||||
health = models.IntegerField()
|
||||
healthmax = models.IntegerField()
|
||||
experience = models.BigIntegerField()
|
||||
lookbody = models.IntegerField()
|
||||
lookfeet = models.IntegerField()
|
||||
lookhead = models.IntegerField()
|
||||
looklegs = models.IntegerField()
|
||||
looktype = models.IntegerField()
|
||||
lookaddons = models.IntegerField()
|
||||
maglevel = models.IntegerField()
|
||||
mana = models.IntegerField()
|
||||
manamax = models.IntegerField()
|
||||
manaspent = models.PositiveIntegerField()
|
||||
soul = models.PositiveIntegerField()
|
||||
town_id = models.IntegerField()
|
||||
posx = models.IntegerField()
|
||||
posy = models.IntegerField()
|
||||
posz = models.IntegerField()
|
||||
conditions = models.TextField()
|
||||
cap = models.IntegerField()
|
||||
sex = models.IntegerField()
|
||||
lastlogin = models.BigIntegerField()
|
||||
lastip = models.PositiveIntegerField()
|
||||
save = models.IntegerField()
|
||||
skull = models.IntegerField()
|
||||
skulltime = models.IntegerField()
|
||||
lastlogout = models.BigIntegerField()
|
||||
blessings = models.IntegerField()
|
||||
onlinetime = models.IntegerField()
|
||||
deletion = models.BigIntegerField()
|
||||
balance = models.BigIntegerField()
|
||||
offlinetraining_time = models.PositiveSmallIntegerField()
|
||||
offlinetraining_skill = models.IntegerField()
|
||||
stamina = models.PositiveSmallIntegerField()
|
||||
skill_fist = models.PositiveIntegerField()
|
||||
skill_fist_tries = models.BigIntegerField()
|
||||
skill_club = models.PositiveIntegerField()
|
||||
skill_club_tries = models.BigIntegerField()
|
||||
skill_sword = models.PositiveIntegerField()
|
||||
skill_sword_tries = models.BigIntegerField()
|
||||
skill_axe = models.PositiveIntegerField()
|
||||
skill_axe_tries = models.BigIntegerField()
|
||||
skill_dist = models.PositiveIntegerField()
|
||||
skill_dist_tries = models.BigIntegerField()
|
||||
skill_shielding = models.PositiveIntegerField()
|
||||
skill_shielding_tries = models.BigIntegerField()
|
||||
skill_fishing = models.PositiveIntegerField()
|
||||
skill_fishing_tries = models.BigIntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'players'
|
||||
|
||||
|
||||
class PlayersOnline(models.Model):
|
||||
player_id = models.IntegerField(primary_key=True)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'players_online'
|
||||
|
||||
|
||||
class ServerConfig(models.Model):
|
||||
config = models.CharField(primary_key=True, max_length=50)
|
||||
value = models.CharField(max_length=256)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'server_config'
|
||||
|
||||
|
||||
class TileStore(models.Model):
|
||||
house = models.ForeignKey(Houses, models.DO_NOTHING)
|
||||
data = models.TextField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'tile_store'
|
||||
|
||||
|
||||
class Towns(models.Model):
|
||||
name = models.CharField(unique=True, max_length=255)
|
||||
posx = models.IntegerField()
|
||||
posy = models.IntegerField()
|
||||
posz = models.IntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'towns'
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Highscore</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
{% if best_players %}
|
||||
<ul>
|
||||
{% for player in best_players %}
|
||||
<li>{{ player.name }} - {{ player.level }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
<p>No players registered.</p>
|
||||
{% endif %}
|
||||
|
||||
<a href="{% url 'accounts:register' %}">Register now!</a>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,17 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Register Account</title>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<form method="post">{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<input type="submit" value="Save">
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,3 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
|
@ -0,0 +1,11 @@
|
|||
from django.urls import path
|
||||
|
||||
|
||||
from . import views
|
||||
|
||||
app_name = 'accounts'
|
||||
|
||||
urlpatterns = [
|
||||
path('', views.IndexView.as_view(), name='index'),
|
||||
path('register/', views.RegisterAccountView.as_view(), name='register'),
|
||||
]
|
|
@ -0,0 +1,27 @@
|
|||
from django.shortcuts import render, render_to_response
|
||||
from django.views import generic
|
||||
from django.views.generic.edit import CreateView
|
||||
# Create your views here.
|
||||
from accounts.models import Accounts, Players
|
||||
|
||||
|
||||
class RegisterAccountView(CreateView):
|
||||
model = Accounts
|
||||
fields = ['name', 'password', 'email']
|
||||
template_name = 'register_account.html'
|
||||
|
||||
def form_valid(self, form):
|
||||
import hashlib
|
||||
self.object = form.save(commit=False)
|
||||
hashed_password = hashlib.sha1(self.object.password.encode('utf-8')).hexdigest()
|
||||
self.object.password = hashed_password
|
||||
self.object.save()
|
||||
|
||||
return render_to_response(self.template_name, self.get_context_data())
|
||||
|
||||
class IndexView(generic.ListView):
|
||||
template_name = 'index.html'
|
||||
context_object_name = 'best_players'
|
||||
|
||||
def get_queryset(self):
|
||||
return Players.objects.order_by('-level')[:10]
|
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env python
|
||||
import os
|
||||
import sys
|
||||
|
||||
if __name__ == '__main__':
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tibia_website.settings')
|
||||
try:
|
||||
from django.core.management import execute_from_command_line
|
||||
except ImportError as exc:
|
||||
raise ImportError(
|
||||
"Couldn't import Django. Are you sure it's installed and "
|
||||
"available on your PYTHONPATH environment variable? Did you "
|
||||
"forget to activate a virtual environment?"
|
||||
) from exc
|
||||
execute_from_command_line(sys.argv)
|
|
@ -0,0 +1,125 @@
|
|||
"""
|
||||
Django settings for tibia_website project.
|
||||
|
||||
Generated by 'django-admin startproject' using Django 2.1.5.
|
||||
|
||||
For more information on this file, see
|
||||
https://docs.djangoproject.com/en/2.1/topics/settings/
|
||||
|
||||
For the full list of settings and their values, see
|
||||
https://docs.djangoproject.com/en/2.1/ref/settings/
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
|
||||
# Quick-start development settings - unsuitable for production
|
||||
# See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/
|
||||
|
||||
# SECURITY WARNING: keep the secret key used in production secret!
|
||||
SECRET_KEY = '0bup5^j9qen7!g8i5ngkc0_n+0wh@8n8j@_j+$vj06l3v2)esl'
|
||||
|
||||
# SECURITY WARNING: don't run with debug turned on in production!
|
||||
DEBUG = True
|
||||
|
||||
ALLOWED_HOSTS = []
|
||||
|
||||
|
||||
# Application definition
|
||||
|
||||
INSTALLED_APPS = [
|
||||
'accounts.apps.AccountsConfig',
|
||||
'django.contrib.admin',
|
||||
'django.contrib.auth',
|
||||
'django.contrib.contenttypes',
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
'django.middleware.security.SecurityMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
]
|
||||
|
||||
ROOT_URLCONF = 'tibia_website.urls'
|
||||
|
||||
TEMPLATES = [
|
||||
{
|
||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||
'DIRS': [],
|
||||
'APP_DIRS': True,
|
||||
'OPTIONS': {
|
||||
'context_processors': [
|
||||
'django.template.context_processors.debug',
|
||||
'django.template.context_processors.request',
|
||||
'django.contrib.auth.context_processors.auth',
|
||||
'django.contrib.messages.context_processors.messages',
|
||||
],
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
WSGI_APPLICATION = 'tibia_website.wsgi.application'
|
||||
|
||||
|
||||
# Database
|
||||
# https://docs.djangoproject.com/en/2.1/ref/settings/#databases
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.mysql',
|
||||
'NAME': 'tibia3',
|
||||
'USER': 'tibia',
|
||||
'PASSWORD': 'dVS5iy3R7Q9kMZd7',
|
||||
'HOST': 'localhost', # Or an IP Address that your DB is hosted on
|
||||
'PORT': '3306',
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Password validation
|
||||
# https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators
|
||||
|
||||
AUTH_PASSWORD_VALIDATORS = [
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
|
||||
},
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
|
||||
},
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
|
||||
},
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
# Internationalization
|
||||
# https://docs.djangoproject.com/en/2.1/topics/i18n/
|
||||
|
||||
LANGUAGE_CODE = 'en-us'
|
||||
|
||||
TIME_ZONE = 'UTC'
|
||||
|
||||
USE_I18N = True
|
||||
|
||||
USE_L10N = True
|
||||
|
||||
USE_TZ = True
|
||||
|
||||
|
||||
# Static files (CSS, JavaScript, Images)
|
||||
# https://docs.djangoproject.com/en/2.1/howto/static-files/
|
||||
|
||||
STATIC_URL = '/static/'
|
|
@ -0,0 +1,22 @@
|
|||
"""tibia_website URL Configuration
|
||||
|
||||
The `urlpatterns` list routes URLs to views. For more information please see:
|
||||
https://docs.djangoproject.com/en/2.1/topics/http/urls/
|
||||
Examples:
|
||||
Function views
|
||||
1. Add an import: from my_app import views
|
||||
2. Add a URL to urlpatterns: path('', views.home, name='home')
|
||||
Class-based views
|
||||
1. Add an import: from other_app.views import Home
|
||||
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
|
||||
Including another URLconf
|
||||
1. Import the include() function: from django.urls import include, path
|
||||
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||
"""
|
||||
from django.contrib import admin
|
||||
from django.urls import path, include
|
||||
|
||||
urlpatterns = [
|
||||
path('admin/', admin.site.urls),
|
||||
path('accounts/', include('accounts.urls') )
|
||||
]
|
|
@ -0,0 +1,16 @@
|
|||
"""
|
||||
WSGI config for tibia_website project.
|
||||
|
||||
It exposes the WSGI callable as a module-level variable named ``application``.
|
||||
|
||||
For more information on this file, see
|
||||
https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tibia_website.settings')
|
||||
|
||||
application = get_wsgi_application()
|
Loading…
Reference in New Issue