Advertisement
timeshifter

old parser

Oct 19th, 2016
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.98 KB | None | 0 0
  1.  
  2.         if (msg.Contains("{0}") || msg.Contains("{0:url}")) {
  3.             /*if (msg.Contains("{1}") || msg.Contains("{1:url}") || msg.Contains("{1:")) {
  4.                 prms = args.Trim().Split(',');
  5.             }
  6.             else {
  7.                 prms[0] = args.Trim();
  8.                 if (msgText == "") {
  9.                     prms = new string[0];
  10.                 }
  11.             }*/
  12.  
  13.             int aliasIdx = 0;
  14.             while (msg.Contains("{" + aliasIdx.ToString() + "}") || msg.Contains("{" + aliasIdx.ToString() + ":url}")) {
  15.                 msg = msg
  16.                     .Replace("{" + aliasIdx.ToString() + ":url}", prms.Length > aliasIdx ?  HttpUtility.UrlEncode(prms[aliasIdx]) : ("{" + aliasIdx.ToString() + ":url}"))
  17.                     .Replace("{" + aliasIdx.ToString() + "}", prms.Length > aliasIdx ? prms[aliasIdx] : ("{" + aliasIdx.ToString() + "}"));
  18.  
  19.  
  20.                
  21.  
  22.                 /*
  23.                  *
  24.                  * Regex regReddit = new Regex(@"( r\/(?<sub>\w*)|^r\/(?<sub>\w*))");
  25.  
  26.                                     if (regReddit.IsMatch(originalMessage)) {
  27.                                         hasReplaceMatch = true;
  28.                                         MatchCollection mcReddit = regReddit.Matches(originalMessage);
  29.  
  30.                                         string redditOutput = "";
  31.  
  32.                                        
  33.  
  34.                                         foreach (Match m in mcReddit) {
  35.                                            
  36.                                             redditOutput += "https://reddit.com/r/" + m.Groups["sub"].Value + " ";
  37.                  *
  38.                  * */
  39.  
  40.                 aliasIdx++;
  41.             }
  42.  
  43.         }
  44.  
  45.        
  46.  
  47.         while (msg.ToLower().Contains("{!")) {
  48.            
  49.             int startIdx = msg.ToLower().IndexOf("{!");
  50.             int endIdx = msg.IndexOf("}", startIdx);
  51.             string segment = msg.Substring(startIdx, endIdx - startIdx + 1);
  52.  
  53.             string segName = segment.Substring(2, segment.Length - 3);
  54.            
  55.             int i = GetRowIndex("Lists", "Name", segName, false);
  56.  
  57.             if (i > -1) {
  58.                 string listName = dsData.Tables["Lists"].Rows[i]["Name"].ToString();
  59.                
  60.                 int listIdx = -1;
  61.  
  62.  
  63.  
  64.                 listIdx = R.Next(dsData.Tables[listName].Rows.Count);
  65.                 string listResult = dsData.Tables[listName].Rows[listIdx][0].ToString();
  66.                 if(listResult.ToLower()==segment.ToLower()){
  67.                     listResult="Don't make me recurse, bro!";
  68.                 }
  69.                 msg = msg.Remove(startIdx, endIdx - startIdx + 1).Insert(startIdx, listResult);
  70.  
  71.             }
  72.             else if(!segment.ToLower().StartsWith("rnd") && !segment.ToLower().StartsWith("rng")){
  73.                 msg = msg.Remove(startIdx, endIdx - startIdx + 1).Insert(startIdx, "fuck veonik");
  74.  
  75.             }
  76.         }
  77.  
  78.         while (msg.ToLower().Contains("{rng:")) {
  79.             int startIdx = msg.ToLower().IndexOf("{rng:");
  80.             int endIdx = msg.IndexOf("}", startIdx);
  81.             string segment = msg.Substring(startIdx, endIdx - startIdx + 1);
  82.  
  83.          
  84.  
  85.             string[] aliasParts = segment.ToLower().Replace("{rng:", "").Replace("}", "").Split(',');
  86.             int aliasRng = R.Next(int.Parse(aliasParts[0]), (aliasParts[1].ToLower().Trim() == "max" ? int.MaxValue : int.Parse(aliasParts[1]) + 1));
  87.             msg = msg.Remove(startIdx, endIdx - startIdx + 1).Insert(startIdx, aliasRng.ToString());
  88.  
  89.         }
  90.      
  91.         while (msg.ToLower().Contains("{rnd:")) {
  92.             int startIdx = msg.ToLower().IndexOf("{rnd:");
  93.             int endIdx = msg.IndexOf("}", startIdx);
  94.             string segment = msg.Substring(startIdx, endIdx - startIdx + 1);
  95.  
  96.  
  97.             if (segment.ToLower() == "{rnd:args}") {
  98.                 string[] argParts = msgText.Split(',');
  99.                 int aliasRng = R.Next(argParts.Length);
  100.                 msg = msg.Remove(startIdx, endIdx - startIdx + 1).Insert(startIdx, argParts[aliasRng]);
  101.             }
  102.             else {
  103.                 string[] aliasParts = segment.Replace("{rnd:", "").Replace("}", "").Split(',');
  104.                 int aliasRng = R.Next(aliasParts.Length);
  105.                 msg = msg.Remove(startIdx, endIdx - startIdx + 1).Insert(startIdx, aliasParts[aliasRng]);
  106.             }
  107.         }
  108.  
  109.  
  110.  
  111.         for (int aliasIdx = 0; aliasIdx < 20; aliasIdx++) {
  112.             Regex reg = new Regex(@"{" + aliasIdx.ToString() + ":(?<default>.*)}");
  113.  
  114.             if (reg.IsMatch(msg)) {
  115.                 MatchCollection mc = reg.Matches(msg);
  116.  
  117.                 bool isDefault = false;
  118.                 if (prms.Length <= aliasIdx)
  119.                     isDefault = true;
  120.  
  121.                 foreach (Match m in mc) {
  122.                     /*PendingOutput.Add(SendMessage(admin, string.Format("Match: {0}, Value: {1}", m.Value, m.Groups[0].Value)));*/
  123.  
  124.                     msg = msg.Replace(m.Value, (isDefault ? m.Groups["default"].Value : prms[aliasIdx]));
  125.  
  126.  
  127.                 }
  128.  
  129.             }
  130.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement