ro-table/Asstes/Resources/Script/PersonalPhoto/PersonalPhotoHelper.txt
2025-06-04 05:02:57 +08:00

245 lines
7.5 KiB
Plaintext

autoImport('PersonalPhoto')
autoImport('PhotoFileInfo')
autoImport('LocalPersonalPhoto')
autoImport('NetIngPersonalPhoto')
PersonalPhotoHelper = class('PersonalPhotoHelper')
function PersonalPhotoHelper.Ins()
if PersonalPhotoHelper.ins == nil then
PersonalPhotoHelper.ins = PersonalPhotoHelper.new()
end
return PersonalPhotoHelper.ins
end
function PersonalPhotoHelper:Initialize()
self.tabIsCheckingExistO = {}
self.tabIsCheckingExistT = {}
self.tabCachedParamsO = {}
self.tabCachedParamsT = {}
self.tabStopFlagO = {}
self.tabStopFlagT = {}
end
function PersonalPhotoHelper:GetOriginImage(pos_index, timestamp, progress_callback, success_callback, error_callback, is_keep_previous_callback, is_through_personalphotocallback)
print(string.format('PersonalPhotoHelper:GetOriginImage\npos_index=%s\ntimestamp=%s\nis_keep_previous_callback=%s', tostring(pos_index), tostring(timestamp), tostring(is_keep_previous_callback)))
self.tabStopFlagO[pos_index] = nil
local isLatestLocal = false
local photoID = PersonalPhoto.Ins():GetPhotoID(Game.Myself.data.id, pos_index)
local localTimestamp = LocalPersonalPhoto.Ins():GetTimestamp(photoID, true)
if localTimestamp ~= nil then
isLatestLocal = localTimestamp >= timestamp
else
isLatestLocal = false
end
if isLatestLocal then
PersonalPhoto.Ins():GetOriginImage(
pos_index,
timestamp,
progress_callback,
success_callback,
error_callback,
is_keep_previous_callback,
is_through_personalphotocallback
)
else
if self.tabCachedParamsO[pos_index] == nil then
self.tabCachedParamsO[pos_index] = {}
end
table.insert(
self.tabCachedParamsO[pos_index],
{
timestamp = timestamp,
progressCallback = progress_callback,
successCallback = success_callback,
errorCallback = error_callback,
isKeepPreviousCallback = is_keep_previous_callback,
isThroughPersonalphotocallback = is_through_personalphotocallback
}
)
if self.tabIsCheckingExistO[pos_index] == nil then
-- NetIngPersonalPhoto.Ins():CheckExist(
-- Game.Myself.data.id,
-- pos_index,
-- function ()
-- self.tabIsCheckingExistO[pos_index] = nil
-- if self.tabStopFlagO[pos_index] == nil then
-- local params = self.tabCachedParamsO[pos_index]
-- for i = 1, #params do
-- local param = params[i]
-- PersonalPhoto.Ins():GetOriginImage(
-- pos_index,
-- param.timestamp,
-- param.progressCallback,
-- param.successCallback,
-- param.errorCallback,
-- param.isKeepPreviousCallback,
-- param.isThroughPersonalphotocallback,
-- PhotoFileInfo.Extension
-- )
-- end
-- end
-- self.tabCachedParamsO[pos_index] = nil
-- end,
-- function ()
-- self.tabIsCheckingExistO[pos_index] = nil
-- if self.tabStopFlagO[pos_index] == nil then
-- local params = self.tabCachedParamsO[pos_index]
-- for i = 1, #params do
-- local param = params[i]
-- PersonalPhoto.Ins():GetOriginImage(
-- pos_index,
-- param.timestamp,
-- param.progressCallback,
-- param.successCallback,
-- param.errorCallback,
-- param.isKeepPreviousCallback,
-- param.isThroughPersonalphotocallback,
-- PhotoFileInfo.OldExtension
-- )
-- end
-- end
-- self.tabCachedParamsO[pos_index] = nil
-- end,
-- PhotoFileInfo.Extension
-- )
self.tabIsCheckingExistO[pos_index] = nil
if self.tabStopFlagO[pos_index] == nil then
local params = self.tabCachedParamsO[pos_index]
for i = 1, #params do
local param = params[i]
PersonalPhoto.Ins():GetOriginImage(
pos_index,
param.timestamp,
param.progressCallback,
param.successCallback,
param.errorCallback,
param.isKeepPreviousCallback,
param.isThroughPersonalphotocallback,
PhotoFileInfo.Extension
)
end
end
self.tabCachedParamsO[pos_index] = nil
self.tabIsCheckingExistO[pos_index] = 0
end
end
end
function PersonalPhotoHelper:StopGetOriginImage(pos_index)
if self.tabIsCheckingExistO[pos_index] ~= nil then
self.tabStopFlagO[pos_index] = 0
end
PersonalPhoto.Ins():StopGetOriginImage(pos_index)
end
function PersonalPhotoHelper:GetThumbnail(pos_index, timestamp, progress_callback, success_callback, error_callback, is_keep_previous_callback)
print(string.format('PersonalPhotoHelper:GetThumbnail\npos_index=%s\ntimestamp=%s\nis_keep_previous_callback=%s', tostring(pos_index), tostring(timestamp), tostring(is_keep_previous_callback)))
self.tabStopFlagT[pos_index] = nil
local isLatestLocal = false
local photoID = PersonalPhoto.Ins():GetPhotoID(Game.Myself.data.id, pos_index)
local localTimestamp = LocalPersonalPhoto.Ins():GetTimestamp(photoID, false)
if localTimestamp ~= nil then
isLatestLocal = localTimestamp >= timestamp
else
isLatestLocal = false
end
if isLatestLocal then
PersonalPhoto.Ins():GetThumbnail(
pos_index,
timestamp,
progress_callback,
success_callback,
error_callback,
is_keep_previous_callback
)
else
if self.tabCachedParamsT[pos_index] == nil then
self.tabCachedParamsT[pos_index] = {}
end
table.insert(
self.tabCachedParamsT[pos_index],
{
timestamp = timestamp,
progressCallback = progress_callback,
successCallback = success_callback,
errorCallback = error_callback,
isKeepPreviousCallback = is_keep_previous_callback
}
)
if self.tabIsCheckingExistT[pos_index] == nil then
-- NetIngPersonalPhoto.Ins():CheckExist(
-- Game.Myself.data.id,
-- pos_index,
-- function ()
-- self.tabIsCheckingExistT[pos_index] = nil
-- if self.tabStopFlagT[pos_index] == nil then
-- local params = self.tabCachedParamsT[pos_index]
-- for i = 1, #params do
-- local param = params[i]
-- PersonalPhoto.Ins():GetThumbnail(
-- pos_index,
-- param.timestamp,
-- param.progressCallback,
-- param.successCallback,
-- param.errorCallback,
-- param.isKeepPreviousCallback,
-- PhotoFileInfo.Extension
-- )
-- end
-- end
-- self.tabCachedParamsT[pos_index] = nil
-- end,
-- function ()
-- self.tabIsCheckingExistT[pos_index] = nil
-- if self.tabStopFlagT[pos_index] == nil then
-- local params = self.tabCachedParamsT[pos_index]
-- for i = 1, #params do
-- local param = params[i]
-- PersonalPhoto.Ins():GetThumbnail(
-- pos_index,
-- param.timestamp,
-- param.progressCallback,
-- param.successCallback,
-- param.errorCallback,
-- param.isKeepPreviousCallback,
-- PhotoFileInfo.OldExtension
-- )
-- end
-- end
-- self.tabCachedParamsT[pos_index] = nil
-- end,
-- PhotoFileInfo.Extension
-- )
self.tabIsCheckingExistT[pos_index] = nil
if self.tabStopFlagT[pos_index] == nil then
local params = self.tabCachedParamsT[pos_index]
for i = 1, #params do
local param = params[i]
PersonalPhoto.Ins():GetThumbnail(
pos_index,
param.timestamp,
param.progressCallback,
param.successCallback,
param.errorCallback,
param.isKeepPreviousCallback,
PhotoFileInfo.Extension
)
end
end
self.tabCachedParamsT[pos_index] = nil
self.tabIsCheckingExistT[pos_index] = 0
end
end
end
function PersonalPhotoHelper:StopGetThumbnail(pos_index)
if self.tabIsCheckingExistT[pos_index] ~= nil then
self.tabStopFlagT[pos_index] = 0
end
PersonalPhoto.Ins():StopGetThumbnail(pos_index)
end