Jump to content

TeenyScript *@ v2.1.3* - A new way of programming in AutoIt with objects and much more


Recommended Posts

Good work tarre³

I really need to start to learn the basics of oop. :)

 

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

6 hours ago, UEZ said:

Good work tarre³

I really need to start to learn the basics of oop. :)

 


Thanks, im glad you like it, hopefully this will give you an idea how it works, if you have any questions I am more than happy to help you.


 

@newpost_ The script is now updated to "beta 2".  

  • Now its possible to include other .ts files (example in new zip file)
  • I also removed the compiled binaries since AutoitObject compiles them automatically upon running
  • everything after the #MAIN tag will only be executed from the file you are starting it from.
  • All .ts.au3 files will be inserted into one file (a bit like au3 Stripper) which means there wont be 2 * your .ts.au3 files in the directories

 

 

Link to comment
Share on other sites

I have updated the Script with some more features and bugfixes

  • F5 run script (Will delete file after run is complete)
  • F7 (Will store and NOT run file)
  • Better examples included 
  • Namespaces are now avilable (Check documentation)
  • Some bugs fixed with include.
Link to comment
Share on other sites

Another update with more features, bugfixes and examples

  • #include now accepts both "x.au3" and "x.ts" instead of just "x.ts", but they will be interpreted differently
  • Added @MethodName macro to get class method \ Function name upon use (See Macros example)
  • Added @MethodParams macro to retrive all params assigned in that method / Function (See Error example)
  • Added __classname__ and __namespace__ READONLY properties to classes which can useful for debugging and other things (See error example)
  • The @Namespace can now be used as a macro to retrive the previous stated @Namespace x
Edited by tarretarretarre
Link to comment
Share on other sites

I have not played with this yet, but it looks amazing. Will definitely try this sometime, good work! :lmao:

Minesweeper

A minesweeper game created in autoit, source available.

_Mouse_UDF

An UDF for registering functions to mouse events, made in pure autoit.

2D Hitbox Editor

A 2D hitbox editor for quick creation of 2D sphere and rectangle hitboxes.

Link to comment
Share on other sites

On 2016-07-12 at 10:25 AM, AlmarM said:

I have not played with this yet, but it looks amazing. Will definitely try this sometime, good work! :lmao:

Im happy to hear that, im working on  this as often as I can, because I need this myself

OT: Beta 5 is now here with more stuff!

 

Buggfixes

  • Multiple "@Use x in x" with same name was replaced globally in file, instead of per global class, its now working as intended
  • An vanilla autoit function after an class extension would cause the vanilla function to retrive $this as a parameter, this is no longer an issue
  • More minor buggfixes that I cannot remember

Changes

  • READONLY class property __classname__ is now called __cName__

Additions / New features

  • Design \ Spellchecking
  • Proper Error-reporting is now done when trying to including non existing .ts files or when trying to include a file which already has been included
  • #Incude can now be used to include a whole directory and even include recursively (#include "path\*.ts") for directory only, (#include "path\**.ts") for recursive search. This means you can work more with namespaces and LESS with includes
  • Forward slashes are now accepted when including files, this will make namespacing easier (#include "path/to/file.ts")
  • Added READONLY class property __methods__ which returns an array of ALL the class methods in that class
  • Added READONLY class property __cParams__ which returns the paramteres of your classobject (__params__ is reserved for AutoitObject)

These new features also have examples included

Edited by tarretarretarre
Link to comment
Share on other sites

Recursive directory Includes is an awesome idea!

 

Ian

My projects:

  • IP Scanner - Multi-threaded ping tool to scan your available networks for used and available IP addresses, shows ping times, resolves IPs in to host names, and allows individual IPs to be pinged.
  • INFSniff - Great technicians tool - a tool which scans DriverPacks archives for INF files and parses out the HWIDs to a database file, and rapidly scans the local machine's HWIDs, searches the database for matches, and installs them.
  • PPK3 (Persistent Process Killer V3) - Another for the techs - suppress running processes that you need to keep away, helpful when fighting spyware/viruses.
  • Sync Tool - Folder sync tool with lots of real time information and several checking methods.
  • USMT Front End - Front End for Microsoft's User State Migration Tool, including all files needed for USMT 3.01 and 4.01, 32 bit and 64 bit versions.
  • Audit Tool - Computer audit tool to gather vital hardware, Windows, and Office information for IT managers and field techs. Capabilities include creating a customized site agent.
  • CSV Viewer - Displays CSV files with automatic column sizing and font selection. Lines can also be copied to the clipboard for data extraction.
  • MyDirStat - Lists number and size of files on a drive or specified path, allows for deletion within the app.
  • 2048 Game - My version of 2048, fun tile game.
  • Juice Lab - Ecigarette liquid making calculator.
  • Data Protector - Secure notes to save sensitive information.
  • VHD Footer - Add a footer to a forensic hard drive image to allow it to be mounted or used as a virtual machine hard drive.
  • Find in File - Searches files containing a specified phrase.
Link to comment
Share on other sites

On 2016-07-14 at 7:40 AM, llewxam said:

Recursive directory Includes is an awesome idea!

 

Ian

Its almost "autoloading" and yes, i really liked that feature :D

 

Beta 6 is now out with minor stuff 

Buggfixes

  • Minor fixes

Changes

  • #Include "folder/**.ts" will now ignore the BackUp folder because of TidyUp saving backups

Additions / New features

  • Scite TidyUp is now implemented and only accessible via the hotkey (CTRL + T)
  • Php and Javascript like-lists are now available $MyList = {"key": "val"} or $MyList {"key" => "val"} See lists example!
Link to comment
Share on other sites

Another release with more fixes and solutions to problems

 

Beta 7

Changes

  • Class READONLY property __cParams__ is now replaced with __Properties__ because it made _no sense_ showing the class parameters used by the class itself (In most cases anyway).

Additions / features

  • Relative paths can now be used with regular Au3 Files (TS will check if the file exists in either the Au3 include dir or the relative path (See Includ example))
  • Class properties can now get assigned with EMPTY lists (@Private $this.var = {})
  • Added a more sleek COM error handler which shows you the actual code that caused the Com error and attempts to propose a solution (See image below).
  • Added _TS_ErrorNotify which works similar to _IEErrorNotify

Buggfixes

  • Fixed issue with class properties that had lists, it is now working as intended  example: ($this.list{'newItem'} = 25) (See updated Lists example)

 

FkD0dRq.png

Com errors will be displayed as a Messagebox if the script is compiled

 

/Tarre

Link to comment
Share on other sites

Hello guys!

So I have been late with updates due to my full time job, spending quality time with my significant and also developing a FULLY featured framework, which is by the way done in TeenyScript and its comming along nicely, I cant wait to explain and show it to you guys!

 

Oh yeah I almost forgot, i am also working on a official website with documentation for TeenyScript

Anyway, here is a small update with 5 new features and some critical bugs resolved.

 

Beta 8

Changes

  • * Hotkeys changed *
  • Use F5 to Run script
  • Use F6 to Build script (.au3)
  • Use F7 to Build script (.exe)
  • Use F8 to change $CmdLine

Additions / features

  • It is now possible to return an array without creating assigning a variable with Dim or Local.Return [1, 2, 3, 4, 5] )
  • Functions can now be created and passed as an argument within TS functions and classes (See Example - Passing functions as parameters)
  • It is now possible to include .ts files from it's relative parent directory #include </parentDir/xxxx.ts>
  • It is now possible to create string templates, similar to PHPS Heredoc. (See Example - EoD)
  • F7 to Build script (.exe) with Aut2Exe (Will get more sofisticated later on!)
  • F8 to change $CmdLine

Buggfixes

  • Comments after a class or function  ( $x = func(); This is a comment ) would cause the regex not to parse the function, this is now resolved
  • Fixed a "Catastrophic backtracking" of lists ($MyList = {"key": "val", "key", "val"}) which is explained here
Link to comment
Share on other sites

Man this is promising. Really very good!

Can't wait to take a look on the framework!

My stuff

Spoiler

My UDFs  _AuThread multithreading emulation for AutoIt · _ExtInputBox an inputbox with multiple inputs and more features · forceUTF8 fix strings encoding without knowing its original charset · JSONgen JSON generator · _TCPServer UDF multi-client and multi-task (run on background) event-based TCP server easy to do · _TCPClient_UDF multi-server and multi-task (runs on background) event-based TCP client easy to do · ParseURL and ParseStr functions ported from PHP · _CmdLine UDF easily parse command line parameters, keys or flags · AutoPHP Create documents (bills, incomes) from HTML by sending variables/arrays from AutoIt to PHP · (Un)Serialize Convert arrays and data into a storable string (PHP compatible) · RTTL Plays and exports to MP3 Nokia-format monophonic ringtones (for very old cellphones) · I18n library Simple and easy to use localization library · Scripting.Dictionary OOP and OOP-like approach · Buffer/stack limit arrays to N items by removing the last one once the limit is reached · NGBioAPI UDF to work with Nitgen fingerprint readers · Serial/Licensing system require license key based on unique machine ID from your users · HTTP a simple WinHTTP library that allows GET, POST and file uploads · Thread true AutoIt threads (under-dev) · RC4 RC4 encryption compatible with PHP and JS ·  storage.au3 localStorage and sessionStorage for AutoIt Classes _WKHtmlToX uses wkhtmlto* to convert HTML files and webpages into PDF or images (jpg, bmp, gif, png...) Snippets _Word_DocFindReplaceByLongText replace strings using Word UDF with strings longer than 255 characters (MSWord limit) rangeparser parser for printing-like pages interval (e.g.: "1,2,3-5") EnvParser parse strings/paths with environment variables and get full path GUICtrlStaticMarquee static text scrolling Random stuff Super Mario beep sound your ears will hurt

 

Link to comment
Share on other sites

On 2016-08-07 at 5:05 PM, Jefrey said:

Man this is promising. Really very good!

Can't wait to take a look on the framework!

Thanks man, although the code in this state of TeenyScript is really really really bad and messy, but no worries, I am currently clean-writing the whole project and preparing it for the future.

 

 

 

Link to comment
Share on other sites

Sorry for all the wait, hopefully it was worth it, because finally, I can release TeenyScript as a finished product

Additions / new features

  • Project added to git https://github.com/tarreislam/teenyscript (This thread will always have the latest version ofc)
  • Created a homepage for documentation and examplecode: http://teenyscript.tarre.nu/documentation
  • Added a more pleasent Options GUI (All features and settings will be handled here).
  • More error checking done by TS when parsing.
  • Com error reporting is more advanced
  • Added new keyword "construct". (See more at http://teenyscript.tarre.nu/documentation#13-Func(Construct)
  • Classes and extension methods can now be assigned with @Private and @Public keywords.  (see more at http://teenyscript.tarre.nu/documentation#3-@Public, @Private, @Readonly)
  • Properties can now have lists and arrays assigned directylty to them (@Private $this.list = {"key" => "value", "key": 1234}, @Private $this.array = [1,2,3,4,5, [1,2,3,4,5]])
  • Scite Calltips & Keywords for TeenyScript can now be installed through the NEW options GUI 
  • Everything written from TeenyScript will be logged under logs/console.log and will only be accesable when TeenyScript is not running, this is for unexpected crashes etc.
  • A sort of "Project" system is now added, which allows you to easily deploy your script with various settings (See F8 -> create new project)

Changes

  • Removed #MAIN and replaced it with #DEBUG. (See more at http://teenyscript.tarre.nu/documentation#20-#DEBUG)
  • Namespaces can no longer be used in #DEBUG (old #MAIN)
  • The __parent__ class property is now @Private instead of @Readonly
  • AutoitObject is now added directly as code to the script, rather than being included with AutoIts regular #include (Removing the step of forcing the user to add the library as an UDF in Scite Options before TeenyScript worked properly)
  •  AutoitObject is only included when actual AutoitObject is used.
  • #Include "/*.ts" previously searched the "execution dir", but now it searches the parent folder instead. #Include "//*.ts" will instead search from the execution folder (See more at http://teenyscript.tarre.nu/documentation#11-#Include)

Buggfixes / misc 

  • Removed a random _Array Udf that i forgot was there

 

Things that i have on the rader, but didnt feel neccesary to implement due to the already delayed RELEASE of TeenyScript

  •  Interfaces
  •  Recursive usage of lists ( {"next_list": {"third_list": {"a": 1}}})


 

Thanks for now /Tarre

Edited by tarretarretarre
Link to comment
Share on other sites

Nice to know that :D

I am unable to access the docs page (it throws a timeout error). Wouldn't it be possible to use Github Pages, so the community would also be able to help on it? :)

My stuff

Spoiler

My UDFs  _AuThread multithreading emulation for AutoIt · _ExtInputBox an inputbox with multiple inputs and more features · forceUTF8 fix strings encoding without knowing its original charset · JSONgen JSON generator · _TCPServer UDF multi-client and multi-task (run on background) event-based TCP server easy to do · _TCPClient_UDF multi-server and multi-task (runs on background) event-based TCP client easy to do · ParseURL and ParseStr functions ported from PHP · _CmdLine UDF easily parse command line parameters, keys or flags · AutoPHP Create documents (bills, incomes) from HTML by sending variables/arrays from AutoIt to PHP · (Un)Serialize Convert arrays and data into a storable string (PHP compatible) · RTTL Plays and exports to MP3 Nokia-format monophonic ringtones (for very old cellphones) · I18n library Simple and easy to use localization library · Scripting.Dictionary OOP and OOP-like approach · Buffer/stack limit arrays to N items by removing the last one once the limit is reached · NGBioAPI UDF to work with Nitgen fingerprint readers · Serial/Licensing system require license key based on unique machine ID from your users · HTTP a simple WinHTTP library that allows GET, POST and file uploads · Thread true AutoIt threads (under-dev) · RC4 RC4 encryption compatible with PHP and JS ·  storage.au3 localStorage and sessionStorage for AutoIt Classes _WKHtmlToX uses wkhtmlto* to convert HTML files and webpages into PDF or images (jpg, bmp, gif, png...) Snippets _Word_DocFindReplaceByLongText replace strings using Word UDF with strings longer than 255 characters (MSWord limit) rangeparser parser for printing-like pages interval (e.g.: "1,2,3-5") EnvParser parse strings/paths with environment variables and get full path GUICtrlStaticMarquee static text scrolling Random stuff Super Mario beep sound your ears will hurt

 

Link to comment
Share on other sites

Hello jefrey, can you access tarre.nu now?   Because http://www.downforeveryoneorjustme.com/Tarre.nu works.

What do you mean with githib pages? I will go through pull requests happily

Link to comment
Share on other sites

I can access it now! Perhaps it was some DNS propagating...

What I meant with Github Pages is this: https://pages.github.com/

The advantage on it is that the community can also help on coding the website/docs  :)

Just like this: https://jesobreira.github.io/TeenyScript/

Edit: I can't pull request because I have no pull permission on the repo nor the repo has a "gh-pages" branch. If you find it interesting, just create a branch named "gh-pages" and I send a PR :)

Edited by Jefrey
PR

My stuff

Spoiler

My UDFs  _AuThread multithreading emulation for AutoIt · _ExtInputBox an inputbox with multiple inputs and more features · forceUTF8 fix strings encoding without knowing its original charset · JSONgen JSON generator · _TCPServer UDF multi-client and multi-task (run on background) event-based TCP server easy to do · _TCPClient_UDF multi-server and multi-task (runs on background) event-based TCP client easy to do · ParseURL and ParseStr functions ported from PHP · _CmdLine UDF easily parse command line parameters, keys or flags · AutoPHP Create documents (bills, incomes) from HTML by sending variables/arrays from AutoIt to PHP · (Un)Serialize Convert arrays and data into a storable string (PHP compatible) · RTTL Plays and exports to MP3 Nokia-format monophonic ringtones (for very old cellphones) · I18n library Simple and easy to use localization library · Scripting.Dictionary OOP and OOP-like approach · Buffer/stack limit arrays to N items by removing the last one once the limit is reached · NGBioAPI UDF to work with Nitgen fingerprint readers · Serial/Licensing system require license key based on unique machine ID from your users · HTTP a simple WinHTTP library that allows GET, POST and file uploads · Thread true AutoIt threads (under-dev) · RC4 RC4 encryption compatible with PHP and JS ·  storage.au3 localStorage and sessionStorage for AutoIt Classes _WKHtmlToX uses wkhtmlto* to convert HTML files and webpages into PDF or images (jpg, bmp, gif, png...) Snippets _Word_DocFindReplaceByLongText replace strings using Word UDF with strings longer than 255 characters (MSWord limit) rangeparser parser for printing-like pages interval (e.g.: "1,2,3-5") EnvParser parse strings/paths with environment variables and get full path GUICtrlStaticMarquee static text scrolling Random stuff Super Mario beep sound your ears will hurt

 

Link to comment
Share on other sites

12 hours ago, argumentum said:
twitter.com##DIV[class="close-modal-background-target"] twitter.com##DIV[id="signup-dialog"][class="SignupDialog modal-container u-textCenter"] twitter.com##DIV[class="modal-overlay"] www.pinterest.com##DIV[class="modalScroller"] www.pinterest.com##DIV[class="UnauthBanner Module"] www.twitch.tv##DIV[id="nav_primary"][class="nav_section js-nav-menu"] www.twitch.tv##DIV[id="nav_streams"][class="nav_section"] www.twitch.tv##DIV[class="js-games games items list-games"] www.twitch.tv##H3[class="title"] www.pinterest.com##DIV[class="modalMask dark"] www.pinterest.com##DIV[class="Module UnauthBanner"] www.helagotland.se##DIV[class="fcol6"] www.aftonbladet.se##IFRAME[id="yui_3_15_0_2_1436035429624_1372"] www.twitch.tv##IMG[class="emoticon tooltip"] @@||www.dingit.tv/$document m.facebook.com##A[class="_19no touchable"][href="/home.php?refid=8"] m.facebook.com##A[class="_19no touchable"][href="/notifications.php?refid=8"] m.facebook.com##A[class="_19no touchable"][href="#"] m.facebook.com##A[class="_19no touchable"][href="/search/?refid=8"] m.facebook.com##A[class="_19no touchable"][href="/friends/center/requests/?refid=8"] m.facebook.com##DIV[id="mJewelNav"][class="_4g33 _52we"] @@||www.tv3play.se/$document @@||www.tv3play.se/$document plex.tarre.nu##DIV[class="alert-bar notify"] www.facebook.com##DIV[id="u_jsonp_71_1a"][class="_4-u2 _4-u8"] www.facebook.com##DIV[class="_4-u2 mbm _5v6e _4-u8"] www.facebook.com##DIV[id="u_jsonp_73_0"][class="_4-u2 _5v6e cardRightCol _4-u8"] www.facebook.com##DIV[id="leftCol"] www.facebook.com##DIV[id="u_jsonp_75_0"][class="_4-u2 _5v6e cardRightCol _4-u8"] www.facebook.com##DIV[class="_4-u2 _5v6e cardRightCol _4-u8"] www.facebook.com##DIV[class="_4-u2 _4-u8"] www.facebook.com##[class="_4-u2 _19ah _2ph_ _4-u8"] www.facebook.com##DIV[class="rhcFooterWrap"] www.facebook.com##SPAN[class="_51lp _51lr _5ugg _5ugh _3-99"] www.facebook.com##SPAN[id="notificationsCountValue"] www.facebook.com##DIV[id="pagelet_timeline_profile_actions"] www.facebook.com##SPAN[id="mercurymessagesCountValue"]

not quite functional

Whops, thats my Adblock settings, the site is http://TeenyScript.tarre.nu/

11 hours ago, Jefrey said:

I can access it now! Perhaps it was some DNS propagating...

What I meant with Github Pages is this: https://pages.github.com/

The advantage on it is that the community can also help on coding the website/docs  :)

Just like this: https://jesobreira.github.io/TeenyScript/

Edit: I can't pull request because I have no pull permission on the repo nor the repo has a "gh-pages" branch. If you find it interesting, just create a branch named "gh-pages" and I send a PR :)

I removed all the countries from my PfSense "top 20 spammer country-list", that might have been the issue.

Ah now i see what you mean with pages, the thing is, I searched for something similar before creating my own sort of documnetation-page, I will create that gh-pages branch and allow pull requests when I come home from work.

I was thinking of expanding my Documentation-page to allow users to use OAuth to login with github at the TeenyScript page and edit pages (like wiki).

 

Btw 1.1.0 is now released

Changes/Additions

  • Changed "Edit project" gui and added some more error-checking and allow the user to utilize more Au2exe options
    Yq94aBy.png

Buggfixes

  • Regex error caused lists to collide if written on the same line: MsgBox(0, $mylist{"abc"} , $mylist{"def"})
  • A class constructor default variables would cause an bool comparision instead of just pass the variable names:
     

 

Link to comment
Share on other sites

So here we go again with some more crucial updates. 

Buggfixes

  • A minor programming error caused AutoitObject to be included when it was not needed
  • Misc minor stuff

Changes

  • Projects (F8 -> Create new project) will give the user some default templates (More complex templates will be added later) Imgur
  • Code improvements

New features

  • Added a "Autoit keyword enhanchment" on For $x In $y See more here
  • It is now possible to pass arrays in functions call, without declaring them $MyFunc([1, 2, 3, 4, 5])See more here
  • Projects (F8 ->Edit Project Settings) has a new feature for the architecture option 32 & 64 bit calledLauncher, its purpose is pretty simple, the source code should give you a hint Launcher.au3
  • The version control system (VCS) using Semantic Versioning 2.0.0  is now finished and will check the current TeenyScript version against the project and output some warnings and such (if needed)
Edited by tarretarretarre
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...