<commit_before>﻿# -*- coding: utf-8 -*-
from data import *
from datetime import *
from google.appengine.ext import ndb
from google.appengine.ext.ndb import metadata
import scoutnet
import ucsv as ucsv
import urllib2

def RunScoutnetImport(groupid, api_key, user, semester, result):
	"""
	:type groupid: str
	:type api_key: str
	:type user: data.UserPrefs
	:type semester: data.Semester
	:type result: data.TaskProgress
	:rtype: bool
	"""
	commit = True
	data = None
	result.info('Importerar för termin %s' % semester.getname())
	if groupid == None or groupid == "" or api_key == None or api_key == "":
		result.error(u"Du måste ange både kårid och api nyckel")
		return False

	success = True
	try:
		data = scoutnet.GetScoutnetMembersAPIJsonData(groupid, api_key)
	except urllib2.HTTPError as e:
		success = False
		logging.error('Scoutnet http error=%s' % str(e))
		result.error(u"Kunde inte läsa medlemmar från scoutnet, fel:%s" % (str(e)))
		if e.code == 401:
			result.error(u"Kontrollera: api nyckel och kårid. Se till att du har rollen 'Medlemsregistrerare', och möjligen 'Webbansvarig' i scoutnet")
		
	if success and data != None:
		importer = ScoutnetImporter(result)
		success = importer.DoImport(data, semester)
		if success:
			user.groupaccess = importer.importedScoutGroup_key
			user.semester = semester.key
			user.hasaccess = True
			user.put()
			if user.groupadmin:
				result.append(u"Du är kåradmin och kan dela ut tillgång till din kår för andra användare")
	return success
	

def GetBackupXML():<commit_msg>RunScoutnetImport() don't connect if user already have a group, or if admin did the import, also reorder as error first to avoid too mutch indentation<commit_after>﻿# -*- coding: utf-8 -*-
from data import *
from datetime import *
from google.appengine.ext import ndb
from google.appengine.ext.ndb import metadata
import scoutnet
import ucsv as ucsv
import urllib2

def RunScoutnetImport(groupid, api_key, user, semester, result):
	"""
	:type groupid: str
	:type api_key: str
	:type user: data.UserPrefs
	:type semester: data.Semester
	:type result: data.TaskProgress
	:rtype: bool
	"""
	result.info('Importerar för termin %s' % semester.getname())
	if groupid is None or groupid == "" or api_key is None or api_key == "":
		result.error(u"Du måste ange både kårid och api nyckel")
		return False

	try:
		data = scoutnet.GetScoutnetMembersAPIJsonData(groupid, api_key)
	except urllib2.HTTPError as e:
		logging.error('Scoutnet http error=%s' % str(e))
		result.error(u"Kunde inte läsa medlemmar från scoutnet, fel:%s" % (str(e)))
		if e.code == 401:
			result.error(u"Kontrollera: api nyckel och kårid. Se till att du har rollen 'Medlemsregistrerare', och möjligen 'Webbansvarig' i scoutnet")
		return False

	if data is None:
		# TODO: Why is no data -> True?
		return True

	importer = ScoutnetImporter(result)
	success = importer.DoImport(data, semester)
	if not success:
		return False

	# Don't Connect the group if the user is an admin
	if user.hasadminaccess:
		return True

	# Don't Connect the group if the user already has an connection
	if user.groupaccess is not None:
		return True

	user.groupaccess = importer.importedScoutGroup_key
	user.semester = semester.key
	user.hasaccess = True
	user.put()
	if user.groupadmin:
		result.append(u"Du är kåradmin och kan dela ut tillgång till din kår för andra användare")
	return True


def GetBackupXML():
{'fraction_non_alphanumeric': 0.09666961391099323, 'fraction_numerical': 0.0035366931918656055, 'mean_word_length': 4.387301587301588, 'pattern_counts': {'":': 2, '<': 3, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6907294', 'n_tokens_mistral': 1238, 'n_tokens_neox': 1160, 'n_words': 381}