Fixed the fucking unicode issues with the models.

This commit is contained in:
A. Svensson 2015-04-06 02:45:05 +02:00
parent 6665365fd8
commit 4c64e92320
2 changed files with 8 additions and 4 deletions

View File

@ -51,19 +51,19 @@ class ServerParser(object):
def _parse_server_data(self, data): def _parse_server_data(self, data):
'''Parse the individual parts of each server.''' '''Parse the individual parts of each server.'''
try: try:
title = data.find('b').get_text().splitlines()[0].strip().encode('utf-8') title = data.find('b').get_text().splitlines()[0].strip()
except AttributeError: except AttributeError:
# HACK: I think this happends because the raw data was incomplete. # HACK: I think this happends because the raw data was incomplete.
# No complete data, no server update. # No complete data, no server update.
return None return None
game_url = data.find('span', 'smaller').text.encode('utf-8') game_url = data.find('span', 'smaller').text
tmp = data.find('a') tmp = data.find('a')
site_url = None site_url = None
# Default means the server hasn't set a custom site url # Default means the server hasn't set a custom site url
if tmp and not tmp.text == 'Default': if tmp and not tmp.text == 'Default':
try: try:
site_url = tmp['href'].encode('utf-8') site_url = tmp['href']
# Handle some funky servers... # Handle some funky servers...
if site_url == 'http://': if site_url == 'http://':
site_url = '' site_url = ''

View File

@ -1,9 +1,11 @@
from __future__ import unicode_literals
from datetime import timedelta from datetime import timedelta
from ast import literal_eval from ast import literal_eval
from django.db import models from django.db import models
from django.utils import timezone from django.utils import timezone
from django.utils.encoding import python_2_unicode_compatible
DAY_NAMES = [ DAY_NAMES = [
@ -17,6 +19,7 @@ DAY_NAMES = [
] ]
@python_2_unicode_compatible
class Server(models.Model): class Server(models.Model):
title = models.CharField(max_length=255) title = models.CharField(max_length=255)
game_url = models.CharField(max_length=255) game_url = models.CharField(max_length=255)
@ -100,6 +103,7 @@ class Server(models.Model):
tmp = [0,0,0,0,0,0,0] tmp = [0,0,0,0,0,0,0]
return zip(DAY_NAMES, tmp) return zip(DAY_NAMES, tmp)
@python_2_unicode_compatible
class ServerHistory(models.Model): class ServerHistory(models.Model):
server = models.ForeignKey(Server) server = models.ForeignKey(Server)
created = models.DateTimeField(default=timezone.now) created = models.DateTimeField(default=timezone.now)
@ -109,5 +113,5 @@ class ServerHistory(models.Model):
ordering = ['-created', 'server'] ordering = ['-created', 'server']
def __str__(self): def __str__(self):
return 'History for {} at {}.'.format(self.server, self.created) return 'History for {} at {}.'.format(self.server.title, self.created)