Здравствуйте!
Работая над плагином для зеннопостера/zennoposter, далее по тексту излюбленный термин на форуме - зенка, имеет возможность использовать глобальные переменные.
Как пришла идея создать плагин, предложили работу, работа оказалась интересной. В итоге в плагине сейчас не так много, но достаточно переменных через которые функционирование плагина позволяет быть очень приятным. Но почему они стали необходимы, существуют такие проблемы как отсутствие настроек у клиентов что запускают плагин, а работать с ним не получается из за пустого окна
Особенно проблема встречается у win11 , например https://zenno.club/discussion/threads/novyj-vid-kapchi.121877/post-812181
При использовании глобальных переменных есть пространство имен и имя, для меня пространство имен это название самого плагина, например testplug, и имя например key, получается двухмерный массив как будто, var["testplug"]["key"] -, возможно кому то будет легче это принять, я же используют точку в скрипте для разделение массива, например testplug.key в уже готовом коде
Код для
Код для
Этот тестовый пример который я использую в шаблонах и плагинах, для меня очень удобен.
Видео как вставлять код и принцип работы кода
Бывает моменты что необходимо создать переменную, я использую все тот же класс
Спасибо за внимание
Работая над плагином для зеннопостера/zennoposter, далее по тексту излюбленный термин на форуме - зенка, имеет возможность использовать глобальные переменные.
Как пришла идея создать плагин, предложили работу, работа оказалась интересной. В итоге в плагине сейчас не так много, но достаточно переменных через которые функционирование плагина позволяет быть очень приятным. Но почему они стали необходимы, существуют такие проблемы как отсутствие настроек у клиентов что запускают плагин, а работать с ним не получается из за пустого окна
Особенно проблема встречается у win11 , например https://zenno.club/discussion/threads/novyj-vid-kapchi.121877/post-812181
При использовании глобальных переменных есть пространство имен и имя, для меня пространство имен это название самого плагина, например testplug, и имя например key, получается двухмерный массив как будто, var["testplug"]["key"] -, возможно кому то будет легче это принять, я же используют точку в скрипте для разделение массива, например testplug.key в уже готовом коде
Код для
C#:
void info(string word){ project.SendInfoToLog(word.ToString(), "[CapGuru][Start]", true); }
var d = new Ev(project);
var keyo = d.getS("key");
if(string.IsNullOrWhiteSpace(keyo)){
info("Данные c интерфейса бота пустые, пробуем получить данные с глобальной переменной");
keyo = d.getS("testplug.key");
if(!string.IsNullOrWhiteSpace(keyo)){
info("Данные успешно полученны с глобальной переменной: "+ keyo);
}else{
info("Данных нет в интерфейсе бота и в глобальной переменной");
}
}else{
info("Данные успешны полученые с переменной key, тектового поля интерфейса бота: "+ keyo);
}
C#:
public class Ev{
IZennoPosterProjectModel project;
public Ev(IZennoPosterProjectModel project){
this.project = project;
}
public void info(string word ){
this.project.SendInfoToLog(word.ToString(), "[CapGuru][C#]", true);
}
public string getS(string name) {
try {
if(name.Contains(".")){
string[] parts = name.Split('.');
return this.project.GlobalVariables[parts[0],parts[1]].Value.ToString();
}else{
return this.project.Variables[name].Value;
}
} catch (Exception ex) {
this.info("Cant get parament: "+name);
}
return "";
}
public int getI(string name) {
try {
string kl = this.getS(name);
return Int32.Parse(kl);
} catch (Exception ex) {
this.info("Cant convert to int parament: "+name);
}
return 0;
}
public void setS(string name, string val) {
try {
if(name.Contains(".")){
string[] parts = name.Split('.');
this.project.GlobalVariables[parts[0],parts[1]].Value = val;
}else{
this.project.Variables[name].Value = val;
}
} catch (Exception ex) {
this.info("Cant set parament: "+name);
}
}
public void creatN(string s){
object obj = this.project.Variables;
if (!this.project.Variables.Keys.Contains(s)){
obj.GetType().GetMethod("QuickCreateVariable").Invoke(obj,new Object[]{s});
project.Variables[s].Value = "";
}
}
}
Видео как вставлять код и принцип работы кода
Бывает моменты что необходимо создать переменную, я использую все тот же класс
C#:
var d = new Ev(project);
d.creatN("key2"); //создаст пустую переменную key2 внутри проекта
Спасибо за внимание
Последнее редактирование: