config.dart 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. class Config {
  2. Config({
  3. required this.selected,
  4. required this.updateInterval,
  5. required this.updateSubsAtStart,
  6. required this.setSystemProxy,
  7. required this.startAtLogin,
  8. required this.breakConnections,
  9. required this.subs,
  10. required this.language,
  11. required this.servicePort
  12. });
  13. late String selected;
  14. late int updateInterval;
  15. late bool updateSubsAtStart;
  16. late bool setSystemProxy;
  17. late bool startAtLogin;
  18. late bool breakConnections;
  19. late String language;
  20. late int servicePort;
  21. late List<ConfigSub> subs;
  22. Config.fromJson(Map<String, dynamic> json) {
  23. selected = json['selected'];
  24. updateInterval = json['updateInterval'];
  25. updateSubsAtStart = json['updateSubsAtStart'];
  26. setSystemProxy = json['setSystemProxy'];
  27. startAtLogin = json['startAtLogin'];
  28. breakConnections = json['breakConnections'];
  29. language = json['language'];
  30. servicePort = json['port'];
  31. subs = List.from(json['subs']).map((e) => ConfigSub.fromJson(e)).toList();
  32. }
  33. Map<String, dynamic> toJson() {
  34. final data = <String, dynamic>{};
  35. data['selected'] = selected;
  36. data['updateInterval'] = updateInterval;
  37. data['updateSubsAtStart'] = updateSubsAtStart;
  38. data['setSystemProxy'] = setSystemProxy;
  39. data['startAtLogin'] = startAtLogin;
  40. data['breakConnections'] = breakConnections;
  41. data['language'] = language;
  42. data['port'] = servicePort;
  43. data['subs'] = subs.map((e) => e.toJson()).toList();
  44. return data;
  45. }
  46. @override
  47. String toString() {
  48. return toJson().toString();
  49. }
  50. }
  51. class ConfigSub {
  52. ConfigSub({
  53. required this.name,
  54. this.url,
  55. this.updateTime,
  56. this.info,
  57. });
  58. late String name;
  59. String? url;
  60. int? updateTime;
  61. ConfigSubInfo? info;
  62. ConfigSub.fromJson(Map<String, dynamic> json) {
  63. name = json['name'];
  64. url = json['url'];
  65. updateTime = json['updateTime'];
  66. if (json['info'] != null) info = ConfigSubInfo.fromJson(json['info']);
  67. }
  68. Map<String, dynamic> toJson() {
  69. return {
  70. 'name': name,
  71. 'url': url,
  72. 'updateTime': updateTime,
  73. 'info': info?.toJson(),
  74. };
  75. }
  76. @override
  77. String toString() {
  78. return toJson().toString();
  79. }
  80. }
  81. class ConfigSubInfo {
  82. ConfigSubInfo({
  83. this.upload,
  84. this.download,
  85. this.total,
  86. this.expire,
  87. });
  88. int? upload;
  89. int? download;
  90. int? total;
  91. int? expire;
  92. ConfigSubInfo.fromJson(Map<String, dynamic> json) {
  93. upload = json['upload'];
  94. download = json['download'];
  95. total = json['total'];
  96. expire = json['expire'];
  97. }
  98. Map<String, dynamic> toJson() {
  99. return {
  100. 'upload': upload,
  101. 'download': download,
  102. 'total': total,
  103. 'expire': expire,
  104. };
  105. }
  106. @override
  107. String toString() {
  108. return toJson().toString();
  109. }
  110. }