Release v6.5.2

This commit is contained in:
SuperSonic 2019-10-14 20:40:20 +08:00
parent f1e3780f76
commit ced4028785
4 changed files with 35 additions and 21 deletions

View file

@ -1,6 +1,6 @@
Star Yuuki(pYthon) BOT - Yuuki
==================
![Version](https://img.shields.io/badge/v6.5.2-OpenSource-FF0033.svg) ![Series](https://img.shields.io/badge/syb_Yuuki-Series-7700FF.svg) ![License](https://img.shields.io/badge/license-MPL--2.0-FF6600.svg) ![Python](https://img.shields.io/badge/python-3.x-0066FF.svg) ![Platform](https://img.shields.io/badge/base_on-LINE-00DD00.svg)
![Version](https://img.shields.io/badge/v6.5.2-OpenSource-FF0033.svg) ![Series](https://img.shields.io/badge/syb-Series-7700FF.svg) ![License](https://img.shields.io/badge/license-MPL--2.0-FF6600.svg) ![Python](https://img.shields.io/badge/python-3.x-0066FF.svg) ![Platform](https://img.shields.io/badge/base_on-LINE-00DD00.svg)
A Python BOT for LINE Group Protection with LINE Unofficial API.
![ICON](logo.png)
@ -21,6 +21,7 @@ Recommand Environment:
Ubuntu >= 18.04
python >= 3.7
pip >= 19.2
git >= 2.17
You need the "LINE Unofficial API Core for Python". (Ex:[olsb](https://github.com/star-inc/olsb_cores), [akad](https://pypi.org/project/akad), [curve](https://pypi.org/project/curve) ...)

View file

@ -155,7 +155,7 @@ class Yuuki_Data:
def _local_query(self, query_data):
if type(query_data) is list:
result = self.Data.copy()
result = self.Data
query_len = len(query_data)
source_data = self.Data
for count, key in enumerate(query_data):
@ -189,8 +189,7 @@ class Yuuki_Data:
def syncData(self):
if self.threading:
sync = self._mdsShake("GET", [])
self.Data = sync.get("data")
self.Data = self.getData([])
for Type in self.DataType:
with self.file(Type, "w", "Data") as f:
f.write(json.dumps(self.Data[Type]))
@ -204,19 +203,22 @@ class Yuuki_Data:
def _updateData(self, path, data):
assert path and type(path) is list, "Empty path - updateData"
if len(path) == 1:
origin = self.getData([]).copy()
origin_data = self.getData([])
assert type(origin_data) is dict, "Error origin data type (1) - updateData"
origin = origin_data.copy()
origin[path[0]] = data
data = origin
path = []
else:
origin = self.getData(path[:-1]).copy()
origin_data = self.getData(path[:-1])
assert type(origin_data) is dict, "Error origin data type (2) - updateData"
origin = origin_data.copy()
origin[path[-1]] = data
path = path[:-1]
data = origin
assert type(data) == dict, "Error data type - updateData"
assert type(origin) is dict, "Error request data type - updateData"
if self.threading:
self._mdsShake("UPT", path, data)
self._mdsShake("UPT", path, origin)
else:
self._local_update(path, data)
self._local_update(path, origin)
def updateLog(self, Type, Data):
if self.threading:

View file

@ -3,7 +3,7 @@
"""
Star Inc. multiprocessing data switching
===
To switch data in multiprocessing tasks.
To switch data in multiprocessor tasks.
LICENSE: MPL 2.0
(c)2019 Star Inc.
@ -49,7 +49,7 @@ def query(query_data, null=None):
global switch_data
try:
if type(switch_data) is dict and type(query_data) is list:
result = switch_data.copy()
result = switch_data
query_len = len(query_data)
source_data = switch_data
for count, key in enumerate(query_data):
@ -101,7 +101,7 @@ class IndexHandler(RequestHandler):
def get(self):
self.write('''
<b>Python MDS Server</b><br>
To switch data in multiprocessing tasks.<hr>
To switch data in multiprocessor tasks.<hr>
(c)2019 <a href="https://starinc.xyz">Star Inc.</a>
''')

View file

@ -9,7 +9,13 @@ import socket, \
from git import Repo
from .core.TalkService import *
try:
from .core.TalkService import *
except ImportError:
print(
"It's necessary to install \"core\" for LINE connection,\n"
"Please read the \"README.md\" first."
)
from .connection import Yuuki_Connect
from .data import Yuuki_Data
@ -268,7 +274,7 @@ class Yuuki:
def limitReset(self):
for userId in self.AllAccountIds:
self.data.updateData(["LimitInfo", "KickLimit", userId], self.KickLimit)
self.data.updateData(["LimitInfo", "KickLimit", userId], self.CancelLimit)
self.data.updateData(["LimitInfo", "CancelLimit", userId], self.CancelLimit)
@staticmethod
def dictShuffle(dict_object, requirement=None):
@ -409,7 +415,7 @@ class Yuuki:
def JoinGroup(self, ncMessage):
"""
ToDo Type:
Event Type:
NOTIFIED_INVITE_INTO_GROUP (13)
"""
GroupInvite = []
@ -452,7 +458,7 @@ class Yuuki:
def Commands(self, ncMessage):
"""
ToDo Type:
Event Type:
RECEIVE_MESSAGE (26)
"""
BlockedIgnore = (ncMessage.message.to in self.data.getData(["BlackList"])) or (ncMessage.message.from_ in self.data.getData(["BlackList"]))
@ -643,8 +649,13 @@ class Yuuki:
elif self.YuukiConfigs["name"] + '/Com' == msgSep[0] and len(msgSep) != 1:
if ncMessage.message.from_ in self.Admin:
ComMsg = self.readCommandLine(msgSep[1:len(msgSep)])
self.sendText(self.sendToWho(ncMessage), str(eval(ComMsg)))
try:
ComMsg = self.readCommandLine(msgSep[1:len(msgSep)])
Report = str(eval(ComMsg))
except:
(err1, err2, err3, ErrorInfo) = self.errorReport()
Report = "Star Yuuki BOT - Eval Error:\n%s\n%s\n%s\n\n%s" % (err1, err2, err3, ErrorInfo)
self.sendText(self.sendToWho(ncMessage), Report)
elif ncMessage.message.contentType == ContentType.CONTACT:
Catched = ncMessage.message.contentMetadata["mid"]
@ -661,7 +672,7 @@ class Yuuki:
def Security(self, ncMessage):
"""
ToDo Type:
Event Type:
NOTIFIED_UPDATE_GROUP (11)
NOTIFIED_INVITE_INTO_GROUP (13)
NOTIFIED_ACCEPT_GROUP_INVITATION (17)