Пример #1
0
 def refresh_data(self):
     query = MinecraftQuery(self.address, self.port)
     try:
         self.server_info = query.get_rules()
         self.response = "ONLINE"
     except socket.timeout:
         self.response = "OFFLINE"
     print("SERVER: " + self.response)
Пример #2
0
 def refresh_data(self):
     query = MinecraftQuery(self.address, self.port)
     try:
         self.server_info = query.get_rules()
         self.response = "ONLINE"
     except socket.timeout:
         self.response = "OFFLINE"
     print("SERVER: " + self.response)
Пример #3
0
	def clean(self):

		cleaned_data = super(ServerCreateForm, self).clean()
		query = MinecraftQuery(cleaned_data['ip'], cleaned_data['port'])

		try:
			self.full_status = query.get_rules()
		except:
			raise ValidationError(u'Cannot query server. Is server.properties enable-query true?')

		if self.full_status['motd'] != cleaned_data['rand_motd']:
			raise ValidationError(u'Check that your server was reloaded with the random MOTD')

		return cleaned_data
Пример #4
0
from mcserverslive.models import Server
from mcstatus.minecraft_query import MinecraftQuery
from datetime import timedelta
from django.db.models import Avg
from django.utils import timezone

from django.conf import settings

minutes_to_archive = timedelta(minutes=settings.ARCHIVE_EVERY_MINUTES)

servers = Server.objects.all()

for server in servers:

    query = MinecraftQuery(server.ip, server.port)
    right_now = timezone.now()
    time_since_last_archive = right_now - server.archivenumplayers_set.latest("query_time").query_time

    if time_since_last_archive > minutes_to_archive:
        numplayers_set = server.numplayers_set.all()
        num_players = numplayers_set.aggregate(Avg("num_players"))["num_players__avg"]
        server.archivenumplayers_set.create(query_time=right_now, num_players=num_players)

        i = 0
        n = len(numplayers_set) - 1
        while i < n:
            numplayers_set[i].delete()
            i += 1

    try: