43 lines
4.0 KiB
Python
43 lines
4.0 KiB
Python
from pathlib import Path
|
|
s=Path('Client/Assets/Scripts/Services/ClubService.cs').read_text(encoding='utf-8-sig')
|
|
models=Path('Client/Assets/Scripts/Services/ClubModel.cs').read_text(encoding='utf-8-sig')
|
|
def block(text,marker):
|
|
start=text.index(marker);a=text.index('{',start);depth=1;b=a+1
|
|
while depth:
|
|
depth+=(text[b]=='{')-(text[b]=='}');b+=1
|
|
return text[start:b]
|
|
helper=s[s.index(' private static bool IsDecimalPlayerId'):s.index(' public async Task<List<SocialInfoItemData>> GetClubDetails')]
|
|
methods='\n'.join(block(s,m) for m in ['public async Task<ClubInfo> CreateClub(', 'public async void QuitClub(', 'public async void Demote(', 'public async void Promote(', 'public async void Kickout(', 'public async void HandleApply(', 'public async Task ClubSingin('])
|
|
dtos='\n'.join(block(models,'public class '+name+'\n') for name in ['ClubInfo','ClubSettingData','CreateClubRequest','CreateClubResp','QuitClubRequest','QuitClubResp','DemoteClubRequest','PromoteClubRequest','KickoutClubRequest','KickoutClubResp','HandleApplyRequest','HandleApplyResp','ClubSinginRequest','ClubSinginResp'])
|
|
code='''// Generated from production methods; do not edit. Engine and transport are controlled test doubles.
|
|
using System;using System.Collections.Generic;using System.ComponentModel;using System.Linq;using System.Threading.Tasks;using Newtonsoft.Json.Linq;
|
|
public enum EMemberRole:byte {Owner,Vice,Member,Elder}
|
|
'''+dtos+'''
|
|
public class Subject {
|
|
public User userService=new();public Server customServerMgr=new();public Chat chatService=new();public ClubInfo myClubInfo=new(){id=9,curMembers=3};public EMemberRole memberRole=EMemberRole.Member;public Dictionary<long,string> internalIdToPlayerId=new();public int Effects;
|
|
private int? signingSession; public DateTime? signTime; public List<Person> clubPlayerInfos=new(){new Person{playFabId="102"}}; public bool CanAccepted=true; void SetClubRed(){} void ShowPromote(){Effects++;}void MyClubInfoChange(bool join=false){Effects++;}void ClearLikeCursorIds(){Effects++;}
|
|
'''+helper+methods+'''
|
|
}
|
|
public class User{public string UserId="8BDE34F732DD4210";public string ApiPlayerId="101";public bool IsAuthorized=true;public uint InternalId=42;}
|
|
public class Server{public int SessionVersion;public int Calls;public object Body;public string Response;public TaskCompletionSource<string> Gate;public Task<string> ClubRequest(string path,object data){Calls++;Body=data;return Gate?.Task??Task.FromResult(Response);}}
|
|
public class Chat{public int Effects;public void SendSystemMessage(string text){Effects++;}public void OnQuit(){Effects++;}public void GetConversationList(long id){Effects++;}}
|
|
public class ClubSttingUpdateEvent{} public static class GContext {public static Container container=new();public static int Events;public static void Publish(object value){Events++;}}
|
|
public static class ToastPanel{public static int Count;public static void Show(string text){Count++;}}
|
|
public static class LocalizationMgr{public static string GetText(string key)=>key;}
|
|
'''
|
|
Path('CodexOutput/upserver/ClubRegression/Generated.cs').write_text(code)
|
|
|
|
p=Path('CodexOutput/upserver/ClubRegression/Generated.cs')
|
|
with p.open('a') as f:f.write("""
|
|
public class Person{public string playFabId;}
|
|
public enum RedPointName {ApplyList}
|
|
public class RedPointManager {public static RedPointManager Instance=new();public void SetRedPointState(RedPointName n,bool b){}}
|
|
public static class ZZTimeHelper {public static DateTime UtcNow()=>new DateTime(2026,9,21);public static DateTime UtcNowOffset(this DateTime time)=>time;}
|
|
public class PlayFabMgr {public static PlayFabMgr Instance=new();public int Writes;public void UpdateUserDataValue(string k,string v){Writes++;}}
|
|
public enum MessageChatType {SI}
|
|
public class Container {public T Resolve<T>() where T:new()=>new T();}
|
|
public class PlayerItemData {public static int Rewards;public void AddItemByDrop(int id,object ctx){Rewards++;}}
|
|
public class ShowData{}
|
|
namespace cfg {public class Tables {public Config TbServerConfig=new();}public class Config{public int ClubSignReward=1;}}
|
|
""")
|