Auto Login WMS or Seamless wifi.id - Mikrotik Script RouterOS

How to auto login WMS from wifi.id Telkom Indonesia

WMS stands for "Wifi Managed Service", which is a special wifi internet service from Telkom that allows customers to have 2-3 SSIDs, one of which is SSID for the owner, and the other two are SSID @ wifi.id and seamless@wifi.id. 

:local currentQueue 0;
:local nolock true;
:local gurl "https://welcome2.wifi.id";
:local guxx "http://www.msftconnecttest.com/redirect";
:local username "";
:local password "";
:local int "WMS2";
:local gwp "WAG-D1-PBR";
:local mdlan "GPON00-D1-TAK-3BSR%20pon%201/3/22/1:4090:TPNS01@WIFI.ID";
:local type "WMS";

:while (true) do={ 
 :do {
  :delay 15s;
  :if ([/ping address=8.8.8.8 count=1] = 0) do={
   :set currentQueue ($currentQueue +1);
   
   :if ($currentQueue > 3) do={
    :if (nolock) do={	
	 :set nolock false;
	 
     :global gip [/ip address get [/ip address find interface=$int] address];
     :global gip [put [:pick $gip 0 [:find $gip "/"]]];
     :global gmc  [/interface wireless get $int mac-address];   
     :global vrab "ipc=$gip&gw_id=$gwp&mac=$gmc&redirect=$guxx&wlan=$mdlan";
     :global url "$gurl/authnew/login/check_login.php\?$vrab";
     :global post "username=$username@spin2&password=$password";
   
     :if ($type = "WMS") do={
      :set username "userWMSmu"
      :set password "passWMSmu"
      :set url "$gurl/wms/auth/authnew/autologin/quarantine.php\?$vrab"
      :set post "username_=$username&username=$username.TrL1@wmslite.123456789.000&password=$password"
     };
	
     log warning ("Internet Mati Memulai Koneksi Ulang | $gip | $gmc | $type | $currentQueue"); 	
     :set currentQueue 0;
	
	 :do {
	  /interface disable $int
      :delay 15s;
      /interface enable $int
	  :delay 15s
	 } on-error={
      log warning ("Error set");
     };

     :do {
	  :local result [/tool fetch http-method=post http-data=$post url=$url http-header-field="User-Agent: Mozilla/5.0" as-value output=user];
      :if ([:find ($result->"data") "Sukses"] >= 0) do={
       log info ("WIFI Kembali Normal")
      } else={
       :if (($result->"data") = "") do={
        log info ("Wifi sudah konek");
       } else={
        log warning ($result->"data")
       };
      };
	 } on-error={
      log warning ("Error Cek Internet");
     };
	 
	 :set nolock true;
	 
	} else={
	 log warning ("Lock Proses");	 
	};
	
   };
   
  } else {
   # log info ("Wifi Normal");
   :set currentQueue 0;
  };
  
  } on-error={
   log warning ("Error big");
   :set currentQueue ($currentQueue +1);
  };
}
Credit: https://gist.github.com/akbaryahya | https://www.tembolok.id/script-autologin-wms