diff --git a/fir_ser/api/migrations/0016_developerappid_developerdevicesid.py b/fir_ser/api/migrations/0016_developerappid_developerdevicesid.py
index 1c8415a..791fabb 100644
--- a/fir_ser/api/migrations/0016_developerappid_developerdevicesid.py
+++ b/fir_ser/api/migrations/0016_developerappid_developerdevicesid.py
@@ -5,7 +5,6 @@ import django.db.models.deletion
class Migration(migrations.Migration):
-
dependencies = [
('api', '0015_auto_20210129_1730'),
]
@@ -16,9 +15,13 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('did', models.CharField(max_length=64)),
- ('app_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Apps', verbose_name='属于哪个APP')),
- ('developerid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.AppIOSDeveloperInfo', verbose_name='所使用苹果开发者账户')),
- ('udid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.AppUDID', verbose_name='所消耗的udid')),
+ ('app_id',
+ models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Apps', verbose_name='属于哪个APP')),
+ ('developerid',
+ models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.AppIOSDeveloperInfo',
+ verbose_name='所使用苹果开发者账户')),
+ ('udid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.AppUDID',
+ verbose_name='所消耗的udid')),
],
options={
'verbose_name': '超级签Devices id',
@@ -31,8 +34,11 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('aid', models.CharField(max_length=64)),
- ('app_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Apps', verbose_name='属于哪个APP')),
- ('developerid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.AppIOSDeveloperInfo', verbose_name='所使用苹果开发者账户')),
+ ('app_id',
+ models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Apps', verbose_name='属于哪个APP')),
+ ('developerid',
+ models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.AppIOSDeveloperInfo',
+ verbose_name='所使用苹果开发者账户')),
],
options={
'verbose_name': '超级签APP id',
diff --git a/fir_ser/api/migrations/0017_auto_20210131_2108.py b/fir_ser/api/migrations/0017_auto_20210131_2108.py
index ef0050f..d494b33 100644
--- a/fir_ser/api/migrations/0017_auto_20210131_2108.py
+++ b/fir_ser/api/migrations/0017_auto_20210131_2108.py
@@ -5,7 +5,6 @@ import django.db.models.deletion
class Migration(migrations.Migration):
-
dependencies = [
('api', '0016_developerappid_developerdevicesid'),
]
@@ -14,6 +13,7 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='developerdevicesid',
name='udid',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.UDIDsyncDeveloper', verbose_name='所消耗的udid'),
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.UDIDsyncDeveloper',
+ verbose_name='所消耗的udid'),
),
]
diff --git a/fir_ser/api/utils/app/iossignapi.py b/fir_ser/api/utils/app/iossignapi.py
index 2d46275..9a14a0a 100644
--- a/fir_ser/api/utils/app/iossignapi.py
+++ b/fir_ser/api/utils/app/iossignapi.py
@@ -205,7 +205,8 @@ class AppDeveloperApiV2(object):
result['return_info'] = "%s" % e
return False, result
- def get_profile(self, bundleId, app_id, device_udid, device_name, provisionName, auth, developer_app_id, device_id_list):
+ def get_profile(self, bundleId, app_id, device_udid, device_name, provisionName, auth, developer_app_id,
+ device_id_list):
result = {}
try:
apple_obj = AppStoreConnectApi(self.issuer_id, self.private_key_id, self.p8key)
@@ -222,7 +223,8 @@ class AppDeveloperApiV2(object):
if device_obj:
result['did'] = device_obj.id
device_id_list.append(device_obj.id)
- profile_obj = apple_obj.create_profile(developer_app_id, auth.get('certid'), provisionName.split("/")[-1],
+ profile_obj = apple_obj.create_profile(developer_app_id, auth.get('certid'),
+ provisionName.split("/")[-1],
device_id_list)
if profile_obj:
n = base64.b64decode(profile_obj.profileContent)
diff --git a/fir_ser/api/utils/app/supersignutils.py b/fir_ser/api/utils/app/supersignutils.py
index 3b68084..944d581 100644
--- a/fir_ser/api/utils/app/supersignutils.py
+++ b/fir_ser/api/utils/app/supersignutils.py
@@ -207,8 +207,12 @@ class IosUtils(object):
def get_developer_auth(self):
developer_obj = self.get_developer_user_by_app_udid()
- self.developer_obj = developer_obj
- self.auth = get_auth_form_developer(developer_obj)
+ if developer_obj:
+ self.developer_obj = developer_obj
+ self.auth = get_auth_form_developer(developer_obj)
+ else:
+ logger.error("user %s has no actived apple developer" % (self.user_obj))
+ raise ModuleNotFoundError("has no actived apple developer")
def get_developer_user_by_app_udid(self):
usedeviceobj = APPSuperSignUsedInfo.objects.filter(udid__udid=self.udid_info.get('udid'),
@@ -242,6 +246,7 @@ class IosUtils(object):
return get_api_obj(self.auth).get_profile(bundleId, app_id, device_udid, device_name,
self.get_profile_full_path(),
self.auth, developer_app_id, device_id_list)
+
# 开启超级签直接在开发者账户创建
def create_app(self, app_obj):
bundleId = self.app_obj.bundle_id
@@ -266,7 +271,7 @@ class IosUtils(object):
return
logger.info("udid %s not exists app_id %s ,need sign" % (self.udid_info.get('udid'), self.app_obj))
fcount = 3
- result={}
+ result = {}
while fcount > 0:
# apptodev_obj = APPToDeveloper.objects.filter(developerid=self.developer_obj, app_id=self.app_obj).first()
device_id_list = DeveloperDevicesID.objects.filter(app_id=self.app_obj,
@@ -334,7 +339,8 @@ class IosUtils(object):
del_cache_response_by_short(self.app_obj.app_id, udid=self.udid_info.get('udid'))
- app_udid_obj = UDIDsyncDeveloper.objects.filter(developerid=self.developer_obj, udid=self.udid_info.get('udid')).first()
+ app_udid_obj = UDIDsyncDeveloper.objects.filter(developerid=self.developer_obj,
+ udid=self.udid_info.get('udid')).first()
if not app_udid_obj:
appudid_obj = AppUDID.objects.filter(app_id=self.app_obj, udid=self.udid_info.get('udid'))
device = appudid_obj.values("serial",
@@ -342,7 +348,7 @@ class IosUtils(object):
'udid',
'version').first()
if result.get("did", None):
- device['serial']=result["did"]
+ device['serial'] = result["did"]
app_udid_obj = UDIDsyncDeveloper.objects.create(developerid=self.developer_obj, **device)
DeveloperDevicesID.objects.create(did=result["did"], udid=app_udid_obj, developerid=self.developer_obj,
app_id=self.app_obj)
diff --git a/fir_ser/api/utils/apple/appleapiv3.py b/fir_ser/api/utils/apple/appleapiv3.py
index e992e53..cfd5fbd 100644
--- a/fir_ser/api/utils/apple/appleapiv3.py
+++ b/fir_ser/api/utils/apple/appleapiv3.py
@@ -635,7 +635,7 @@ class AppStoreConnectApi(DevicesAPI, BundleIDsAPI, BundleIDsCapabilityAPI, Profi
}
self.headers = headers
- def __base_store(self, stype, req, success_code):
+ def __base_format(self, stype, req, success_code):
if req.status_code == success_code:
req_data = req.json()
data = req_data.get('data')
@@ -663,16 +663,16 @@ class AppStoreConnectApi(DevicesAPI, BundleIDsAPI, BundleIDsCapabilityAPI, Profi
raise Exception('unknown error: %s code:%s' % (req.text, req.status_code))
def __device_store(self, req, success_code=200):
- return self.__base_store('devices', req, success_code)
+ return self.__base_format('devices', req, success_code)
def __profile_store(self, req, success_code=200):
- return self.__base_store('profiles', req, success_code)
+ return self.__base_format('profiles', req, success_code)
def __certificates_store(self, req, success_code=200):
- return self.__base_store('certificates', req, success_code)
+ return self.__base_format('certificates', req, success_code)
def __bundle_ids_store(self, req, success_code=200):
- return self.__base_store('bundleIds', req, success_code)
+ return self.__base_format('bundleIds', req, success_code)
def get_all_devices(self):
req = self.list_devices()
diff --git a/fir_ser/fir_ser/settings.py b/fir_ser/fir_ser/settings.py
index 10ffba4..2bdfc2c 100644
--- a/fir_ser/fir_ser/settings.py
+++ b/fir_ser/fir_ser/settings.py
@@ -170,7 +170,7 @@ REST_FRAMEWORK_EXTENSIONS = {
# 注册方式,如果启用sms或者email 需要配置 THIRD_PART_CONFIG.sender 信息
REGISTER = {
- "enable": True,
+ "enable": False,
"captcha": True, # 是否开启注册字母验证码
"register_type": {
'sms': False, # 短信注册
diff --git a/fir_ser/fir_ser/urls.py b/fir_ser/fir_ser/urls.py
index 33c98dc..0ed7b0e 100644
--- a/fir_ser/fir_ser/urls.py
+++ b/fir_ser/fir_ser/urls.py
@@ -15,9 +15,6 @@ Including another URLconf
"""
from django.contrib import admin
from django.urls import path, re_path, include
-from rest_framework.routers import DefaultRouter
-from api.views.login import LoginView
-from api.views.logout import LogoutView
from django.views.static import serve
from fir_ser import settings
from api.views.download import DownloadView, InstallView
@@ -25,7 +22,6 @@ from api.views.receiveudids import IosUDIDView
urlpatterns = [
re_path('fly.admin/', admin.site.urls),
- # path("",include(router.urls)),
re_path("api/v1/fir/server/", include('api.urls')),
re_path("api/v2/fir/server/", include('cli.urls')),
re_path('^captcha/', include('captcha.urls')),
diff --git a/fir_ser/tests/postudid.py b/fir_ser/tests/postudid.py
index db0419c..8b2d3ec 100644
--- a/fir_ser/tests/postudid.py
+++ b/fir_ser/tests/postudid.py
@@ -1,46 +1,49 @@
-# import requests
-# import random
-#
-# short = ["bgql", "wjbu", "vnfg", "bgql"]
-#
-# udid_lists = [
-# "f55df38afe5c1242b8bc478d0182bbd0d7d08929",
-# "f55df38afe5c1242b8bc478d0182bbd0d7d08929",
-# "f55df38afe5c1242b8bc478d0182bbd0d7d08922",
-# "f55df38afe5c1242b8bc478d0182bbd0d7d01129",
-# "f55df38afe5c1242b8bc478d0182bbd0d723929",
-# "f55df38afe5c1242b8bc478d0182bbd0d7d118929",
-# "f55df38afe5c1242b8bc478d0182bbd0d7d08929",
-# "f55df38afe5c1242b8bc478d0182bbd0daed08929",
-# "f55df38afe5c1242b8bc478d0182bbd0d7d08929",
-# "f55df38afe5c1242b8bc478d0182bbdfsdfe7d08929",
-# "f55df38afe5c1242b8bc478d0182bbdfsdfe7d08929",
-# "f55df38afe5c1242b8bc478d0182bbdfsdfe7d08929",
-# "f55df38afe5c1242b8bc478d0182dsfsdd7d08929",
-# "f55df38afe5c1242b8bc478d0182dsfsdd7d08929",
-# "f55df38afe5c1242b8bc478d0182dsfsdd7d08929",
-# "f55df38afe5c1242b8bc478d0182bbdsdfsadf8929",
-# "f55df38afe5c1242b8bc478d01sdsdfsdd0d7d08929",
-# "f55df38afe5c1242b8bc478sdfsdffsdafd7d08929",
-# "f55df38afe5c1242b8bc478sdfsdffsdafd7d08929",
-# "f55df38afe5c1242b8bc478sdfsdffsdafd7d08929",
-# "f55df38afe5c1242b8bc478d0182bbd0d7d08929",
-# "f55df38afe5c1242b8bc478dsdfeasdfbbd0d7d08929",
-# "f55df38afe5c1242b8bc478dfsdfseasbd0d7d08929",
-# "f55df38afe5c1242b8bc478d0sdfseafsdbbd0d7d08929",
-# "f55df38afe5c1242b8asdfae8ds2bbd0d7d118929",
-# "f55df38afe5c1242b8bc47sfsdf2bbd0d7dd18929",
-# "f55df38afe5c1242b8bc478d0182bbd0d7d0ae8929",
-# "f55df38afe5c1242b8bc478d0182bbd0d7dsfe08929",
-# ]
-#
-# for udid in udid_lists:
-# data = '\n\n\n\n\tPRODUCT\n\tiPhone9,1\n\tSERIAL\n\tF71YD58GHG74\n\tUDID\n\t%s\n\tVERSION\n\t17E262\n\n\n' % (
-# udid)
-# uri = "https://fly.harmonygames.cn/udid/%s" % (random.choice(short))
-# # uri = "https://fly.harmonygames.cn/udid/%s" % ("bgql")
-# req = requests.post(uri, data=data)
-# print(req.status_code)
+import requests
+import random
-a = '验证码%(code)s,您正在注册成为新用户,感谢您的支持!'
-print(a % {'code': 111})
+short = ["bgql", "wjbu", "vnfg", "bgql"]
+
+udid_lists = [
+ "f55df38afe5c1242b8bc478d0182bbd0d7d08929",
+ "f55df38afe5c1242b8bc478d0182bbd0d7d08929",
+ "f55df38afe5c1242b8bc478d0182bbd0d7d08922",
+ "f55df38afe5c1242b8bc478d0182bbd0d7d01129",
+ "f55df38afe5c1242b8bc478d0182bbd0d723929",
+ "f55df38afe5c1242b8bc478d0182bbd0d7d118929",
+ "f55df38afe5c1242b8bc478d0182bbd0d7d08929",
+ "f55df38afe5c1242b8bc478d0182bbd0daed08929",
+ "f55df38afe5c1242b8bc478d0182bbd0d7d08929",
+ "f55df38afe5c1242b8bc478d0182bbdfsdfe7d08929",
+ "f55df38afe5c1242b8bc478d0182bbdfsdfe7d08929",
+ "f55df38afe5c1242b8bc478d0182bbdfsdfe7d08929",
+ "f55df38afe5c1242b8bc478d0182dsfsdd7d08929",
+ "f55df38afe5c1242b8bc478d0182dsfsdd7d08929",
+ "f55df38afe5c1242b8bc478d0182dsfsdd7d08929",
+ "f55df38afe5c1242b8bc478d0182bbdsdfsadf8929",
+ "f55df38afe5c1242b8bc478d01sdsdfsdd0d7d08929",
+ "f55df38afe5c1242b8bc478sdfsdffsdafd7d08929",
+ "f55df38afe5c1242b8bc478sdfsdffsdafd7d08929",
+ "f55df38afe5c1242b8bc478sdfsdffsdafd7d08929",
+ "f55df38afe5c1242b8bc478d0182bbd0d7d08929",
+ "f55df38afe5c1242b8bc478dsdfeasdfbbd0d7d08929",
+ "f55df38afe5c1242b8bc478dfsdfseasbd0d7d08929",
+ "f55df38afe5c1242b8bc478d0sdfseafsdbbd0d7d08929",
+ "f55df38afe5c1242b8asdfae8ds2bbd0d7d118929",
+ "f55df38afe5c1242b8bc47sfsdf2bbd0d7dd18929",
+ "f55df38afe5c1242b8bc478d0182bbd0d7d0ae8929",
+ "f55df38afe5c1242b8bc478d0182bbd0d7dsfe08929",
+]
+
+shorts='pzsdaaa'
+for udid in udid_lists:
+ data = '\n\n\n\n\tPRODUCT\n\tiPhone9,1\n\tSERIAL\n\tF71YD58GHG74\n\tUDID\n\t%s\n\tVERSION\n\t17E262\n\n\n' % (
+ udid)
+ # uri = "https://app.hehelucky.cn/udid/%s" % (random.choice(short))
+ uri = "https://app.hehelucky.cn/udid/%s" % (shorts)
+ req = requests.post(uri, data=data)
+ print(req.status_code)
+ print(req.text)
+ exit(1)
+
+# a = '验证码%(code)s,您正在注册成为新用户,感谢您的支持!'
+# print(a % {'code': 111})