├── .gitattributes ├── .gitignore ├── README.md ├── Dark ├── Dark.b4j └── Dark.bas ├── Dice └── Dice.b4j ├── Flickr ├── Flickr.b4j └── Flickr.bas ├── PiHole ├── PiHole.b4j └── Template.bas ├── TikTok ├── TikTok.b4j └── TikTok.bas ├── reddit ├── reddit.b4j └── reddit.bas ├── COVID19 └── COVID19.b4j ├── Weibo ├── Weibo.b4j └── Weibo.bas ├── CustomApp ├── CustomApp.b4j └── CustomApp.bas ├── HAPlugin └── HAPlugin.b4j ├── Template └── Template.b4j ├── Bilibili ├── Bilibili.b4j └── Bilibili.bas ├── DrinkWater └── DrinkWater.b4j ├── dinoRemote ├── dinoremote.b4j └── dinoremote.bas ├── Animations ├── Animations.b4j └── Animations.bas ├── Corona_Lkr └── Corona_Lkr.b4j ├── Mixer ├── Mixer.b4j └── Mixer.bas ├── WooCommerce └── WooCommerce.b4j ├── MessageBoard ├── MessageBoard.b4j └── MessageBoard.bas ├── SpaceX └── SpaceX.b4j ├── WordOfTheDay └── WordOfTheDay.b4j ├── YearProgress ├── YearProgress.b4j └── YearProgress.bas ├── PayPal_Balance └── PayPal_Balance.b4j ├── Twitter ├── Twitter.b4j └── Twitter.bas ├── myTischtennis ├── myTischtennis.b4j └── myTischtennis.bas ├── Fortnite └── Fortnite.b4j ├── PM ├── PM.b4j └── PM.bas ├── Reminder └── Reminder.b4j ├── AQI └── AQI.b4j ├── News ├── News.b4j └── News.bas ├── CallOfDuty └── CallOfDuty.b4j ├── Moon └── Moon.b4j ├── Airnut └── Airnut.b4j ├── Crypto ├── Cyrpto.b4j └── Crypto.bas ├── Matomo ├── Matomo.b4j └── Matomo.bas ├── Facebook ├── Facebook.b4j └── Facebook.bas ├── HappyBirthday ├── HappyBirthday.b4j └── HappyBirthday.bas ├── Time ├── Time.b4j └── Objects │ └── ObfuscatorMap.txt ├── Youtube ├── Youtube.b4j └── Youtube.bas ├── Octoprint ├── Octoprint.b4j └── Octoprint.bas ├── Overwatch └── Overwatch.b4j ├── Pong ├── Pong.b4j └── Pong.bas ├── WeatherCN ├── WeatherCN.b4j └── WeatherCN.bas ├── WeatherCY └── WeatherCY.b4j ├── BME280 ├── c.b4j ├── BME280.b4j └── BME280.bas ├── GameOfLife └── GameOfLife.b4j ├── Pinterest ├── Printerest.b4j └── Pinterest.bas ├── Snake └── Snake.b4j ├── LookingEyes └── LookingEyes.b4j ├── OpenWeather ├── OpenWeather.b4j └── OpenWeather.bas ├── StockTicker └── StockTicker.b4j ├── TronaldDump ├── TronaldDump.b4j └── TronaldDump.bas ├── Twitch └── Twitch.b4j ├── Tankerkoenig └── Tankerkoenig.b4j ├── Toggl └── toggl.b4j ├── Wetterdienst ├── Wetterdienst.b4j └── Wetterdienst.bas ├── BlogViews ├── BlogViews.b4j └── BlogViews.bas ├── Matrix └── Matrix.b4j ├── SimonSays └── SimonSays.b4j ├── BilibiliOnline ├── BilibiliOnline.b4j └── BilibiliOnline.bas ├── MinecraftServer ├── MinecraftServer.b4j └── MinecraftServer.bas ├── MyStrom ├── MyStrom.b4j └── MyStrom.bas ├── BinaryClock └── BinaryClock.b4j ├── FlappyAwtrix └── FlappyAwtrix.b4j ├── NeteaseMusic ├── NeteaseMusic.b4j └── NeteaseMusic.bas ├── SpaceAttack └── SpaceAttack.b4j ├── pr0gramm ├── pr0gramm.b4j └── pr0gramm.bas ├── Instagram ├── Instagram.b4j ├── Instagram2.bas └── Instagram.bas ├── UpdateNotifier ├── UpdateNotifier.b4j └── UpdateNotifier.bas ├── GithubFollowers ├── GithubFollowers.b4j └── GithubFollowers.bas ├── PeopleInSpace ├── PeopleInSpace.b4j └── PeopleInSpace.bas ├── Sunrise ├── Sunrise.b4j └── Sunrise.bas ├── DaysGone ├── DaysGone.b4j └── DaysGone.bas ├── SuperAwtrix ├── SuperAwtrix.b4j ├── Block.bas └── Enemy.bas ├── Countdown ├── Countdown.b4j └── Countdown.bas ├── DayOfTheWeek ├── DayOfTheWeek.b4j └── DayOfTheWeek.bas ├── RocketLaunch ├── RocketLaunch.b4j └── RocketLaunch.bas ├── QuitSmoking ├── QuitSmoking.b4j └── QuitSmoking.bas ├── Netatmo └── Netatmo.b4j └── LICENSE /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | *.bas linguist-language=Visual Basic -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.meta 2 | *.zip 3 | *.class 4 | *.java 5 | *.class 6 | *.png 7 | *.jpg 8 | *.meta 9 | *.zip 10 | *.xml 11 | /AutoBackups 12 | /Files 13 | /Objects 14 | *.jar 15 | /AwtrixOrder 16 | /CustomScroller 17 | /Gmail 18 | /FitBit 19 | /Tesla 20 | /Spotify 21 | /ISS 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AWTRIX2.0-Apps 2 | native apps for AWTRIX 2.0 3 | https://docs.blueforcer.de/#/v2/app 4 | 5 | These Apps only works with the latest Beta Server 6 | 7 | You need the B4J IDE to compile it to a library (JDK 8) 8 | Use the Template project to start coding your own app. 9 | Documentation will follow! 10 | -------------------------------------------------------------------------------- /Dark/Dark.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Dark 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:Dark 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Dice/Dice.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Dice 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:Dice 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Flickr/Flickr.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Flickr 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.5 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:Flickr 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /PiHole/PiHole.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=PiHole 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:PiHole 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /TikTok/TikTok.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=TikTok 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:TikTok 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /reddit/reddit.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=reddit 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.5 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:reddit 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /COVID19/COVID19.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=COVID19 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.31 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:COVID19 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Weibo/Weibo.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Weibo 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName: Weibo 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub 31 | -------------------------------------------------------------------------------- /CustomApp/CustomApp.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=CustomApp 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.1 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:CustomApp 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /HAPlugin/HAPlugin.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=HAPlugin 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.31 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:HAPlugin 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Template/Template.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Template 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.8 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:Template 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Bilibili/Bilibili.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Bilibili 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName: Bilibili 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub 31 | -------------------------------------------------------------------------------- /DrinkWater/DrinkWater.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=DrinkWater 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.31 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:DrinkWater 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /dinoRemote/dinoremote.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=dinoRemote 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:dinoRemote 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Animations/Animations.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,de.blueforcer 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Animations 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.31 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName: Animations 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Corona_Lkr/Corona_Lkr.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Corona_Lkr 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:Corona_Lkr 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | 26 | End Sub 27 | 28 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 29 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 30 | Return True 31 | End Sub -------------------------------------------------------------------------------- /Mixer/Mixer.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Mixer 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Ignore this module 15 | 16 | #Region Project Attributes 17 | #LibraryName:Mixer 18 | #End Region 19 | 20 | Sub Process_Globals 21 | 22 | End Sub 23 | 24 | Sub AppStart (Args() As String) 25 | 26 | End Sub 27 | 28 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 29 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 30 | Return True 31 | End Sub -------------------------------------------------------------------------------- /WooCommerce/WooCommerce.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=WooCommerce 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:WooCommerce 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /MessageBoard/MessageBoard.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=MessageBoard 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.31 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:MessageBoard 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /SpaceX/SpaceX.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Library4=jdateutils 8 | Module1=AWTRIX 9 | Module2=SpaceX 10 | NumberOfFiles=0 11 | NumberOfLibraries=4 12 | NumberOfModules=2 13 | Version=8.3 14 | @EndOfDesignText@ 15 | 16 | #Region Project Attributes 17 | #LibraryName:SpaceX 18 | #End Region 19 | 20 | Sub Process_Globals 21 | 22 | End Sub 23 | 24 | Sub AppStart (Args() As String) 25 | 26 | End Sub 27 | 28 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 29 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 30 | Return True 31 | End Sub -------------------------------------------------------------------------------- /WordOfTheDay/WordOfTheDay.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=WordOfTheDay 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:WordOfTheDay 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /YearProgress/YearProgress.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=YearProgress 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:YearProgress 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /PayPal_Balance/PayPal_Balance.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=PayPal_Balance 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:PayPal_Balance 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Twitter/Twitter.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Twitter 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Ignore this module 15 | 16 | #Region Project Attributes 17 | #LibraryName:Twitter 18 | #End Region 19 | 20 | Sub Process_Globals 21 | 22 | End Sub 23 | 24 | Sub AppStart (Args() As String) 25 | 26 | End Sub 27 | 28 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 29 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 30 | Return True 31 | End Sub -------------------------------------------------------------------------------- /myTischtennis/myTischtennis.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=myTischtennis 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 15 | #Region Project Attributes 16 | #LibraryName:myTischtennis 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Fortnite/Fortnite.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Fortnite 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Ignore this module 15 | 16 | #Region Project Attributes 17 | #LibraryName:Fortnite 18 | #End Region 19 | 20 | Sub Process_Globals 21 | 22 | End Sub 23 | 24 | Sub AppStart (Args() As String) 25 | 26 | End Sub 27 | 28 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 29 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 30 | Return True 31 | End Sub -------------------------------------------------------------------------------- /PM/PM.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=PM 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:PM 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Reminder/Reminder.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jdateutils 7 | Library4=jrandomaccessfile 8 | Module1=Reminder 9 | Module2=AWTRIX 10 | NumberOfFiles=0 11 | NumberOfLibraries=4 12 | NumberOfModules=2 13 | Version=7.51 14 | @EndOfDesignText@ 15 | 16 | #Region Project Attributes 17 | #LibraryName:Reminder 18 | #End Region 19 | 20 | Sub Process_Globals 21 | 22 | End Sub 23 | 24 | Sub AppStart (Args() As String) 25 | 26 | End Sub 27 | 28 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 29 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 30 | Return True 31 | End Sub -------------------------------------------------------------------------------- /AQI/AQI.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AQI 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:AQI 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /News/News.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=News 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.1 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:News 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /CallOfDuty/CallOfDuty.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Library4=jstringutils 8 | Module1=AWTRIX 9 | Module2=CallOfDuty 10 | NumberOfFiles=0 11 | NumberOfLibraries=4 12 | NumberOfModules=2 13 | Version=8.1 14 | @EndOfDesignText@ 15 | 16 | #Region Project Attributes 17 | #LibraryName:CallOfDuty 18 | #End Region 19 | 20 | Sub Process_Globals 21 | 22 | End Sub 23 | 24 | Sub AppStart (Args() As String) 25 | 26 | End Sub 27 | 28 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 29 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 30 | Return True 31 | End Sub -------------------------------------------------------------------------------- /Moon/Moon.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Moon 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Moon 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Airnut/Airnut.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Airnut 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Airnut 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Crypto/Cyrpto.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Crypto 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Crypto 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Matomo/Matomo.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Matomo 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Matomo 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Facebook/Facebook.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Facebook 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.5 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Facebook 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /HappyBirthday/HappyBirthday.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jdateutils 7 | Library4=jrandomaccessfile 8 | Module1=AWTRIX 9 | Module2=HappyBirthday 10 | NumberOfFiles=0 11 | NumberOfLibraries=4 12 | NumberOfModules=2 13 | Version=8.8 14 | @EndOfDesignText@ 15 | 16 | #Region Project Attributes 17 | #LibraryName:HappyBirthday 18 | #End Region 19 | 20 | Sub Process_Globals 21 | 22 | End Sub 23 | 24 | Sub AppStart (Args() As String) 25 | 26 | End Sub 27 | 28 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 29 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 30 | Return True 31 | End Sub -------------------------------------------------------------------------------- /Time/Time.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Time 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.8 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Time 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | StartMessageLoop 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Youtube/Youtube.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Youtube 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.31 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Youtube 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Octoprint/Octoprint.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Octoprint 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.1 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Octoprint 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Overwatch/Overwatch.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Overwatch 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Overwatch 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Pong/Pong.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Pong 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Pong 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /WeatherCN/WeatherCN.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=WeatherCN 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:WeatherCN 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /WeatherCY/WeatherCY.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=WeatherCY 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.31 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:WeatherCY 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /BME280/c.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=BME280 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.31 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:BME280 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /GameOfLife/GameOfLife.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=GameOfLife 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:GameOfLife 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Pinterest/Printerest.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Pinterest 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Pinterest 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Snake/Snake.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Snake 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Snake 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /BME280/BME280.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=BME280 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:BME280 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /LookingEyes/LookingEyes.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=LookingEyes 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:LookingEyes 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /OpenWeather/OpenWeather.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=OpenWeather 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.1 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:OpenWeather 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /StockTicker/StockTicker.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=StockTicker 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName: StockTicker 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /TronaldDump/TronaldDump.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=TronaldDump 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:TronaldDump 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Twitch/Twitch.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Library4=jstringutils 8 | Library5=jhttp 9 | Module1=AWTRIX 10 | Module2=Twitch 11 | NumberOfFiles=0 12 | NumberOfLibraries=5 13 | NumberOfModules=2 14 | Version=8.5 15 | @EndOfDesignText@ 16 | 'Ignore this module 17 | 18 | #Region Project Attributes 19 | #LibraryName:Twitch 20 | #End Region 21 | 22 | Sub Process_Globals 23 | 24 | End Sub 25 | 26 | Sub AppStart (Args() As String) 27 | 28 | End Sub 29 | 30 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 31 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 32 | Return True 33 | End Sub -------------------------------------------------------------------------------- /Tankerkoenig/Tankerkoenig.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Tankerkoenig 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.1 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | ##LibraryName: Tankerkoenig 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Toggl/toggl.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Library4=jdateutils 8 | Library5=jstringutils 9 | Library6=byteconverter 10 | Module1=AWTRIX 11 | Module2=Toggl 12 | NumberOfFiles=0 13 | NumberOfLibraries=6 14 | NumberOfModules=2 15 | Version=8.31 16 | @EndOfDesignText@ 17 | 18 | #Region Project Attributes 19 | #LibraryName:Toggl 20 | #End Region 21 | 22 | Sub Process_Globals 23 | 24 | End Sub 25 | 26 | Sub AppStart (Args() As String) 27 | 28 | End Sub 29 | 30 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 31 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 32 | Return True 33 | End Sub -------------------------------------------------------------------------------- /Wetterdienst/Wetterdienst.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Wetterdienst 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.31 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:Wetterdienst 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /BlogViews/BlogViews.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=BlogViews 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.31 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:BlogViews 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /Matrix/Matrix.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=Matrix 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 15 | 'ignore this Code Module!. everything is happen in the second Class 16 | 17 | #Region Project Attributes 18 | #LibraryName:Matrix 19 | #End Region 20 | 21 | Sub Process_Globals 22 | 23 | End Sub 24 | 25 | Sub AppStart (Args() As String) 26 | 27 | End Sub 28 | 29 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 30 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 31 | Return True 32 | End Sub -------------------------------------------------------------------------------- /SimonSays/SimonSays.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=SimonSays 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:SimonSays 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /BilibiliOnline/BilibiliOnline.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=BilibiliOnline 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:BilibiliOnline 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /MinecraftServer/MinecraftServer.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=MinecraftServer 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:MinecraftServer 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /MyStrom/MyStrom.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=MyStrom 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 15 | 'ignore this Code Module!. everything is happen in the second Class 16 | 17 | #Region Project Attributes 18 | #LibraryName:MyStrom 19 | #End Region 20 | 21 | Sub Process_Globals 22 | 23 | End Sub 24 | 25 | Sub AppStart (Args() As String) 26 | 27 | End Sub 28 | 29 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 30 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 31 | Return True 32 | End Sub -------------------------------------------------------------------------------- /BinaryClock/BinaryClock.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=BinaryClock 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:BinaryClock 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /FlappyAwtrix/FlappyAwtrix.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=FlappyAwtrix 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:FlappyAwtrix 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /NeteaseMusic/NeteaseMusic.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=NeteaseMusic 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:NeteaseMusic 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /SpaceAttack/SpaceAttack.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=SpaceAttack 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:SpaceAttack 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /pr0gramm/pr0gramm.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=pr0gramm 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 15 | 'ignore this Code Module!. everything is happen in the second Class 16 | 17 | #Region Project Attributes 18 | #LibraryName:pr0gramm 19 | #End Region 20 | 21 | Sub Process_Globals 22 | 23 | End Sub 24 | 25 | Sub AppStart (Args() As String) 26 | 27 | End Sub 28 | 29 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 30 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 31 | Return True 32 | End Sub -------------------------------------------------------------------------------- /Instagram/Instagram.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Instagram 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.8 13 | @EndOfDesignText@ 14 | 'ignore this Code Module!. everything is happen in the second Class (InstagramPlugin) 15 | 16 | #Region Project Attributes 17 | #LibraryName:Instagram 18 | #End Region 19 | 20 | Sub Process_Globals 21 | 22 | End Sub 23 | 24 | Sub AppStart (Args() As String) 25 | 26 | End Sub 27 | 28 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 29 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 30 | Return True 31 | End Sub -------------------------------------------------------------------------------- /UpdateNotifier/UpdateNotifier.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=UpdateNotifier 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=8.5 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:UpdateNotifier 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /GithubFollowers/GithubFollowers.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=GithubFollowers 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 'Draws a Rectangle'Non-UI application (console / server application) 15 | #Region Project Attributes 16 | #LibraryName:GithubFollowers 17 | #End Region 18 | 19 | Sub Process_Globals 20 | 21 | End Sub 22 | 23 | Sub AppStart (Args() As String) 24 | 25 | End Sub 26 | 27 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 28 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 29 | Return True 30 | End Sub -------------------------------------------------------------------------------- /PeopleInSpace/PeopleInSpace.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=PeopleInSpace 8 | Module2=AWTRIX 9 | NumberOfFiles=0 10 | NumberOfLibraries=3 11 | NumberOfModules=2 12 | Version=7.51 13 | @EndOfDesignText@ 14 | 15 | 'ignore this Code Module!. everything is happen in the second Class 16 | 17 | #Region Project Attributes 18 | #LibraryName:PeopleInSpace 19 | #End Region 20 | 21 | Sub Process_Globals 22 | 23 | End Sub 24 | 25 | Sub AppStart (Args() As String) 26 | 27 | End Sub 28 | 29 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 30 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 31 | Return True 32 | End Sub -------------------------------------------------------------------------------- /Sunrise/Sunrise.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Module1=AWTRIX 8 | Module2=Calculations 9 | Module3=Sunrise 10 | NumberOfFiles=0 11 | NumberOfLibraries=3 12 | NumberOfModules=3 13 | Version=8.1 14 | @EndOfDesignText@ 15 | 16 | 'ignore this Code Module!. everything is happen in the second Class 17 | 18 | #Region Project Attributes 19 | #LibraryName:Sunrise 20 | #End Region 21 | 22 | Sub Process_Globals 23 | 24 | End Sub 25 | 26 | Sub AppStart (Args() As String) 27 | 28 | End Sub 29 | 30 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 31 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 32 | Return True 33 | End Sub -------------------------------------------------------------------------------- /DaysGone/DaysGone.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jdateutils 7 | Library4=jrandomaccessfile 8 | Module1=DaysGone 9 | Module2=AWTRIX 10 | NumberOfFiles=0 11 | NumberOfLibraries=4 12 | NumberOfModules=2 13 | Version=7.51 14 | @EndOfDesignText@ 15 | 16 | 'ignore this Code Module!. everything is happen in the second Class 17 | 18 | #Region Project Attributes 19 | #LibraryName:DaysGone 20 | #End Region 21 | 22 | Sub Process_Globals 23 | 24 | End Sub 25 | 26 | Sub AppStart (Args() As String) 27 | 28 | End Sub 29 | 30 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 31 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 32 | Return True 33 | End Sub -------------------------------------------------------------------------------- /SuperAwtrix/SuperAwtrix.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Library4=b4xcollections 8 | Library5=jokhttputils2 9 | Module1=AWTRIX 10 | Module2=Block 11 | Module3=Enemy 12 | Module4=SuperAwtrix 13 | NumberOfFiles=0 14 | NumberOfLibraries=5 15 | NumberOfModules=4 16 | Version=8.31 17 | @EndOfDesignText@ 18 | #Region Project Attributes 19 | #LibraryName:SuperAwtrix 20 | #End Region 21 | 22 | Sub Process_Globals 23 | 24 | End Sub 25 | 26 | Sub AppStart (Args() As String) 27 | 28 | End Sub 29 | 30 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 31 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 32 | Return True 33 | End Sub -------------------------------------------------------------------------------- /Countdown/Countdown.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jdateutils 7 | Library4=jrandomaccessfile 8 | Module1=AWTRIX 9 | Module2=Countdown 10 | NumberOfFiles=0 11 | NumberOfLibraries=4 12 | NumberOfModules=2 13 | Version=8.31 14 | @EndOfDesignText@ 15 | 16 | 'ignore this Code Module!. everything is happen in the second Class 17 | 18 | #Region Project Attributes 19 | #LibraryName:Countdown 20 | #End Region 21 | 22 | Sub Process_Globals 23 | 24 | End Sub 25 | 26 | Sub AppStart (Args() As String) 27 | 28 | End Sub 29 | 30 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 31 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 32 | Return True 33 | End Sub -------------------------------------------------------------------------------- /DayOfTheWeek/DayOfTheWeek.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jdateutils 7 | Library4=jrandomaccessfile 8 | Module1=AWTRIX 9 | Module2=DayOfTheWeek 10 | NumberOfFiles=0 11 | NumberOfLibraries=4 12 | NumberOfModules=2 13 | Version=7.51 14 | @EndOfDesignText@ 15 | 'Draws a Rectangle'Non-UI application (console / server application) 16 | #Region Project Attributes 17 | #LibraryName:DayOfTheWeek 18 | #End Region 19 | 20 | Sub Process_Globals 21 | 22 | End Sub 23 | 24 | Sub AppStart (Args() As String) 25 | 26 | End Sub 27 | 28 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 29 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 30 | Return True 31 | End Sub -------------------------------------------------------------------------------- /RocketLaunch/RocketLaunch.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jrandomaccessfile 7 | Library4=jdateutils 8 | Module1=RocketLaunch 9 | Module2=AWTRIX 10 | NumberOfFiles=0 11 | NumberOfLibraries=4 12 | NumberOfModules=2 13 | Version=7.51 14 | @EndOfDesignText@ 15 | 'Draws a Rectangle'Non-UI application (console / server application) 16 | #Region Project Attributes 17 | #LibraryName:RocketLaunch 18 | #End Region 19 | 20 | Sub Process_Globals 21 | 22 | End Sub 23 | 24 | Sub AppStart (Args() As String) 25 | 26 | End Sub 27 | 28 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 29 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 30 | Return True 31 | End Sub -------------------------------------------------------------------------------- /QuitSmoking/QuitSmoking.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library2=json 6 | Library3=jdateutils 7 | Library4=jrandomaccessfile 8 | Module1=QuitSmoking 9 | Module2=AWTRIX 10 | NumberOfFiles=0 11 | NumberOfLibraries=4 12 | NumberOfModules=2 13 | Version=7.51 14 | @EndOfDesignText@ 15 | 16 | 'ignore this Code Module!. everything is happen in the second Class 17 | 18 | #Region Project Attributes 19 | #LibraryName:QuitSmoking 20 | #End Region 21 | 22 | Sub Process_Globals 23 | 24 | End Sub 25 | 26 | Sub AppStart (Args() As String) 27 | 28 | End Sub 29 | 30 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 31 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 32 | Return True 33 | End Sub -------------------------------------------------------------------------------- /SuperAwtrix/Block.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=8.31 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim x As Int 9 | Dim y As Int 10 | Dim color() As Int 11 | Dim breakable,destroyed As Boolean 12 | Dim hits As Int 13 | Dim colors() As Object = Array As Object(Array As Int(153, 25, 25),Array As Int(178, 25, 25),Array As Int(255,0,0),Array As Int(255,0,0)) 14 | End Sub 15 | 16 | 'Initializes the object. You can add parameters to this method if needed. 17 | Public Sub Initialize 18 | color=colors(0) 19 | End Sub 20 | 21 | Public Sub hit 22 | If breakable And Not(destroyed) Then 23 | hits=hits+1 24 | color=colors(hits) 25 | If hits=3 Then 26 | destroyed=True 27 | End If 28 | End If 29 | End Sub 30 | 31 | Public Sub reset 32 | hits=0 33 | destroyed=False 34 | End Sub 35 | -------------------------------------------------------------------------------- /Netatmo/Netatmo.b4j: -------------------------------------------------------------------------------- 1 | AppType=StandardJava 2 | Build1=Default,b4j.example 3 | Group=Default Group 4 | Library1=jcore 5 | Library10=javaobject 6 | Library2=json 7 | Library3=jrandomaccessfile 8 | Library4=jokhttputils2 9 | Library5=okhttp 10 | Library6=jmqtt 11 | Library7=jmqttbroker 12 | Library8=byteconverter 13 | Library9=b4xcollections 14 | Module1=AWTRIX 15 | Module2=Netatmo 16 | NumberOfFiles=0 17 | NumberOfLibraries=10 18 | NumberOfModules=2 19 | Version=8.5 20 | @EndOfDesignText@ 21 | 22 | #Region Project Attributes 23 | #LibraryName:Netatmo 24 | #End Region 25 | 26 | Sub Process_Globals 27 | 28 | End Sub 29 | 30 | Sub AppStart (Args() As String) 31 | 32 | End Sub 33 | 34 | 'Return true to allow the default exceptions handler to handle the uncaught exception. 35 | Sub Application_Error (Error As Exception, StackTrace As String) As Boolean 36 | Return True 37 | End Sub -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 2-Clause License 2 | 3 | Copyright (c) 2019, Stephan Mühl 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /MessageBoard/MessageBoard.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=7.31 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | End Sub 10 | 11 | ' Config your App 12 | Public Sub Initialize() As String 13 | 14 | App.Initialize(Me,"App") 15 | 16 | 'App name (must be unique, avoid spaces) 17 | App.Name="MessageBoard" 18 | 19 | 'Version of the App 20 | App.Version="1.0" 21 | 22 | 'Description of the App. You can use HTML to format it 23 | App.Description=$"Show a fixed text with an icon on your awtrix"$ 24 | 25 | App.Author="TheHackLife" 26 | 27 | App.CoverIcon = 187 28 | 29 | 'SetupInstructions. You can use HTML to format it 30 | App.setupDescription= $" 31 | CustomText:Text wich will be shown
32 | IconID: Icon to show (ID).
33 | "$ 34 | 35 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 36 | App.Icons = Array As Int(187) 37 | 38 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 39 | App.Tick = 65 40 | 41 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 42 | App.Settings = CreateMap("ShowText":"", "IconID":187) 43 | 44 | App.MakeSettings 45 | Return "AWTRIX20" 46 | End Sub 47 | 48 | ' ignore 49 | public Sub GetNiceName() As String 50 | Return App.Name 51 | End Sub 52 | 53 | 54 | ' ignore 55 | public Sub Run(Tag As String, Params As Map) As Object 56 | Return App.interface(Tag,Params) 57 | End Sub 58 | 59 | 'this sub is called right before AWTRIX will display your App 60 | Sub App_iconRequest 61 | App.Icons = Array As Int(App.Get("IconID")) 62 | End Sub 63 | 64 | 'is called every tick, generates the commandlist (drawingroutines) and send it to awtrix 65 | Sub App_genFrame 66 | App.genSimpleFrame(App.get("ShowText"),App.Get("IconID"),True,False,Null,False) 67 | End Sub 68 | -------------------------------------------------------------------------------- /BME280/BME280.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim scroll As Int 13 | End Sub 14 | 15 | ' ignore 16 | public Sub GetNiceName() As String 17 | Return App.Name 18 | End Sub 19 | 20 | ' ignore 21 | public Sub Run(Tag As String, Params As Map) As Object 22 | Return App.interface(Tag,Params) 23 | End Sub 24 | 25 | ' Config your App 26 | Public Sub Initialize() As String 27 | 28 | App.Initialize(Me,"App") 29 | 30 | 'App name (must be unique, avoid spaces) 31 | App.name="BME280" 32 | 33 | 'Version of the App 34 | App.version="1.0" 35 | 36 | 'Description of the App. You can use HTML to format it 37 | App.description="This App shows the temperature And humidity your connected BME280" 38 | 39 | App.author="Blueforcer" 40 | 41 | App.coverIcon = 609 42 | 43 | App.settings=CreateMap("TempOffset":0,"HumOffset":0,"PresOffset":0) 44 | 45 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 46 | App.icons=Array As Int(693,235) 47 | 48 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 49 | App.tick=65 50 | 51 | App.MakeSettings 52 | Return "AWTRIX20" 53 | End Sub 54 | 55 | Sub App_Started 56 | scroll=1 57 | End Sub 58 | 59 | 60 | 'With this sub you build your frame. 61 | Sub App_genFrame 62 | If App.startedAtQuit Date: Format: dd.mm.yyyy.
29 | "$ 30 | 31 | App.Author="Blueforcer" 32 | 33 | App.CoverIcon=581 34 | 35 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 36 | App.Icons=Array As Int(581) 37 | 38 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 39 | App.Tick=65 40 | 41 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 42 | App.settings=CreateMap("QuitDate":"01.01.2019") 43 | 44 | App.MakeSettings 45 | Return "AWTRIX20" 46 | End Sub 47 | 48 | ' ignore 49 | public Sub GetNiceName() As String 50 | Return App.Name 51 | End Sub 52 | 53 | ' ignore 54 | public Sub Run(Tag As String, Params As Map) As Object 55 | Return App.interface(Tag,Params) 56 | End Sub 57 | 58 | 'this sub is called right before AWTRIX will display your App 59 | Sub App_Started 60 | Try 61 | DateTime.DateFormat = "dd.MM.yyyy" 62 | PerDiff= DateUtils.PeriodBetweenInDays(DateTime.Dateparse(App.Get("QuitDate")),DateTime.now) 63 | Catch 64 | Log("Error in " &App.Name) 65 | Log(LastException) 66 | End Try 67 | End Sub 68 | 69 | 'is called every tick, generates the commandlist (drawingroutines) and send it to awtrix 70 | Sub App_genFrame 71 | App.genText(PerDiff.Days,True,1,Null,True) 72 | App.drawBMP(0,0,App.getIcon(581),8,8) 73 | End Sub 74 | -------------------------------------------------------------------------------- /Time/Objects/ObfuscatorMap.txt: -------------------------------------------------------------------------------- 1 | Diese Datei ordnet die umbenannten Variablen den Orginalen zu. 2 | v5=getnicename 3 | v6=getweeknumber 4 | v7=run 5 | v0=app 6 | vv1=weekday 7 | vv2=startat 8 | vv3=scroll 9 | vv4=main 10 | vv5=addmenuitem 11 | vv6=addtoiconrenderer 12 | vv7=appcontrol 13 | vv0=calctextlength 14 | vvv1=control 15 | vvv2=customcommand 16 | vvv3=drawbmp 17 | vvv4=drawcircle 18 | vvv5=drawline 19 | vvv6=drawpixel 20 | vvv7=drawrect 21 | vvv0=drawtext 22 | vvvv1=externalcommand 23 | vvvv2=fill 24 | vvvv3=fillcircle 25 | vvvv4=finish 26 | vvvv5=firsttick 27 | vvvv6=gentext 28 | vvvv7=get 29 | vvvv0=geticon 30 | vvvvv1=logger 31 | vvvvv2=makesettings 32 | vvvvv3=rainbow 33 | vvvvv4=savesinglesetting 34 | vvvvv5=starticonrenderer 35 | vvvvv6=stopiconrenderer 36 | vvvvv7=timescomparative 37 | vvvvv0=wheel 38 | vvvvvv1=appduration 39 | vvvvvv2=scrollposition 40 | vvvvvv3=shouldshow 41 | vvvvvv4=forcedownload 42 | vvvvvv5=lockapp 43 | vvvvvv6=icons 44 | vvvvvv7=appname 45 | vvvvvv0=appversion 46 | vvvvvvv1=tickinterval 47 | vvvvvvv2=needdownloads 48 | vvvvvvv3=updateinterval 49 | vvvvvvv4=appdescription 50 | vvvvvvv5=appauthor 51 | vvvvvvv6=setupinfos 52 | vvvvvvv7=matrixinfo 53 | vvvvvvv0=appsettings 54 | vvvvvvvv1=serverversion 55 | vvvvvvvv2=displaytime 56 | vvvvvvvv3=matrixwidth 57 | vvvvvvvv4=matrixheight 58 | vvvvvvvv5=downloadurl 59 | vvvvvvvv6=downloadheader 60 | vvvvvvvv7=startedat 61 | vvvvvvvv0=tags 62 | vvvvvvvvv1=howtoplay 63 | vvvvvvvvv2=covericon 64 | vvvvvvvvv3=isgame 65 | vvvvvvvvv4=icomap 66 | vvvvvvvvv5=renderedicons 67 | vvvvvvvvv6=animcounter 68 | vvvvvvvvv7=iconlist 69 | vvvvvvvvv0=timermap 70 | vvvvvvvvvv1=set 71 | vvvvvvvvvv2=target 72 | vvvvvvvvvv3=commandlist 73 | vvvvvvvvvv4=colorcounter 74 | vvvvvvvvvv5=starttime 75 | vvvvvvvvvv6=endtime 76 | vvvvvvvvvv7=charmap 77 | vvvvvvvvvv0=textbuffer 78 | vvvvvvvvvvv1=textlength 79 | vvvvvvvvvvv2=uppercaseletters 80 | vvvvvvvvvvv3=systemcolor 81 | vvvvvvvvvvv4=event 82 | vvvvvvvvvvv5=enabled 83 | vvvvvvvvvvv6=noicon 84 | vvvvvvvvvvv7=isrunning 85 | vvvvvvvvvvv0=menu 86 | vvvvvvvvvvvv1=menulist 87 | vvvvvvvvvvvv2=bc 88 | vvvvvvvvvvvv3=noiconmessage 89 | vvvvvvvvvvvv4=verboselog 90 | vvvvvvvvvvvv5=finishapp 91 | -------------------------------------------------------------------------------- /Sunrise/Sunrise.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=7.31 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | Dim sun As Calculations 10 | End Sub 11 | 12 | ' Config your App 13 | Public Sub Initialize() As String 14 | 15 | App.Initialize(Me,"App") 16 | 17 | 'App name (must be unique, avoid spaces) 18 | App.Name="Sunrise" 19 | 20 | 'Version of the App 21 | App.Version="1.3" 22 | 23 | 'Description of the App. You can use HTML to format it 24 | App.Description=$" 25 | Shows sunset and sunrise times for a given location. 26 | "$ 27 | 28 | App.Author="0o.y.o0 & Blueforcer" 29 | 30 | App.CoverIcon=493 31 | 32 | 'SetupInstructions. You can use HTML to format it 33 | App.setupDescription= $" 34 | Latitude: Enter the latitude for your location in degree (e.g. 50.1343).
35 | Longitude: Enter the longitude for your location in degree (e.g. 8.8398).
36 | 12hrFormat: Switch from 24hr to 12h timeformat (true/false) .
37 | "$ 38 | 39 | 'How many downloadhandlers should be generated 40 | App.Downloads=0 41 | 42 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 43 | App.Icons=Array As Int(493) 44 | 45 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 46 | App.Tick=65 47 | 48 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 49 | App.Settings=CreateMap("Latitude":"50.1343", "Longitude":"8.8398", "12hrFormat":False) 50 | 51 | App.MakeSettings 52 | Return "AWTRIX20" 53 | End Sub 54 | 55 | ' ignore 56 | public Sub GetNiceName() As String 57 | Return App.Name 58 | End Sub 59 | 60 | ' ignore 61 | public Sub Run(Tag As String, Params As Map) As Object 62 | Return App.interface(Tag,Params) 63 | End Sub 64 | 65 | Sub App_Started 66 | sun.Initialize(App.get("Latitude"),App.get("Longitude"),App.get("12hrFormat")) 67 | sun.doCalculation 68 | End Sub 69 | 70 | 'Generate your Frame. This Sub is called with every Tick 71 | Sub App_genFrame 72 | App.genText(sun.SunTime,True,1,Null,True) 73 | App.drawBMP(0,0,App.getIcon(493),8,8) 74 | End Sub 75 | -------------------------------------------------------------------------------- /DaysGone/DaysGone.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=7.31 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | Dim PerDiff As Period 11 | Dim iconID As Int 12 | End Sub 13 | ' Config your App 14 | Public Sub Initialize() As String 15 | 16 | App.Initialize(Me,"App") 17 | 18 | 'App name (must be unique, avoid spaces) 19 | App.Name="DaysGone" 20 | 21 | 'Version of the App 22 | App.Version="1.0" 23 | 24 | 'Description of the App. You can use HTML to format it 25 | App.Description=$"Shows the past days from a certain date."$ 26 | 27 | 'SetupInstructions. You can use HTML to format it 28 | App.setupDescription= $" 29 | Date: Format: dd.mm.yyyy.
30 | "$ 31 | 32 | App.Author="Blueforcer" 33 | 34 | App.CoverIcon=711 35 | 36 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 37 | App.Icons=Array As Int(711) 38 | 39 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 40 | App.Tick=65 41 | 42 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 43 | App.Settings=CreateMap("QuitDate":"01.01.2019","IconID":635) 44 | 45 | App.MakeSettings 46 | Return "AWTRIX20" 47 | End Sub 48 | 49 | ' ignore 50 | public Sub GetNiceName() As String 51 | Return App.Name 52 | End Sub 53 | 54 | ' ignore 55 | public Sub Run(Tag As String, Params As Map) As Object 56 | Return App.interface(Tag,Params) 57 | End Sub 58 | 59 | Sub App_iconRequest 60 | App.Icons=Array As Int(App.get("IconID")) 61 | End Sub 62 | 63 | 'this sub is called right before AWTRIX will display your App 64 | Sub App_Started 65 | iconID=App.get("IconID") 66 | Try 67 | DateTime.DateFormat = "dd.MM.yyyy" 68 | PerDiff= DateUtils.PeriodBetweenInDays(DateTime.Dateparse(App.Get("QuitDate")),DateTime.now) 69 | Catch 70 | Log("Error in " &App.Name) 71 | Log(LastException) 72 | End Try 73 | End Sub 74 | 75 | 'is called every tick, generates the commandlist (drawingroutines) and send it to awtrix 76 | Sub App_genFrame 77 | App.genText(PerDiff.Days,True,1,Null,True) 78 | App.drawBMP(0,0,App.getIcon(iconID),8,8) 79 | End Sub 80 | -------------------------------------------------------------------------------- /DayOfTheWeek/DayOfTheWeek.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim weekday As String 13 | Dim week As Int 14 | Dim scroll As Int 15 | End Sub 16 | 17 | ' ignore 18 | public Sub GetNiceName() As String 19 | Return App.Name 20 | End Sub 21 | 22 | ' ignore 23 | public Sub Run(Tag As String, Params As Map) As Object 24 | Return App.interface(Tag,Params) 25 | End Sub 26 | 27 | ' Config your App 28 | Public Sub Initialize() As String 29 | 30 | App.Initialize(Me,"App") 31 | 32 | 'App name (must be unique, avoid spaces) 33 | App.Name="DayOfTheWeek" 34 | 35 | 'Version of the App 36 | App.Version= "1.0" 37 | 38 | 'Description of the App. You can use HTML to format it 39 | App.Description = $"Shows the Day of the Week and the Week of the Year"$ 40 | 41 | App.Author = "Blueforcer" 42 | 43 | App.CoverIcon = 414 44 | 'SetupInstructions. You can use HTML to format it 45 | App.setupDescription= $" 46 | ShowWeekOfYear:Wether it should show the Week of the Year (true/false)
47 | "$ 48 | 49 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 50 | App.Tick=65 51 | 52 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 53 | App.Settings=CreateMap("ShowWeekOfYear":True) 54 | 55 | App.MakeSettings 56 | Return "AWTRIX20" 57 | End Sub 58 | 59 | Sub App_Started 60 | scroll=1 61 | weekday= DateUtils.GetDayOfWeekName(DateTime.Now) 62 | Dim offset As Int = DateTime.GetDayOfWeek(DateUtils.SetDate( _ 63 | DateTime.GetYear(DateTime.Now), 1, 1)) - 1 64 | week= Floor((DateTime.GetDayOfYear(DateTime.Now) -1 + offset) / 7) + 1 65 | End Sub 66 | 67 | 'With this sub you build your frame. 68 | Sub App_genFrame 69 | If App.get("ShowWeekOfYear") Then 70 | If App.StartedAt 39 | "$ 40 | 41 | App.Author = "Blueforcer" 42 | 43 | App.CoverIcon = 700 44 | 45 | 'How many downloadhandlers should be generated 46 | App.Downloads=1 47 | 48 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 49 | App.Icons=Array As Int(700) 50 | 51 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 52 | App.Tick=65 53 | 54 | App.MakeSettings 55 | Return "AWTRIX20" 56 | End Sub 57 | 58 | 'Called with every update from Awtrix 59 | 'return one URL for each downloadhandler 60 | Sub App_startDownload(jobNr As Int) 61 | Select jobNr 62 | Case 1 63 | App.Download("https://remote.dinotec.de/api/v2/awtrix/installations/status") 64 | End Select 65 | End Sub 66 | 67 | 'process the response from each download handler 68 | 'if youre working with JSONs you can use this online parser 69 | 'to generate the code automaticly 70 | 'https://json.blueforcer.de/ 71 | Sub App_evalJobResponse(Resp As JobResponse) 72 | Try 73 | If Resp.success Then 74 | Select Resp.jobNr 75 | Case 1 76 | Dim parser As JSONParser 77 | parser.Initialize(Resp.ResponseString) 78 | Dim root As Map = parser.NextObject 79 | online = root.Get("online") 80 | End Select 81 | End If 82 | Catch 83 | Log("Error in: "& App.Name & CRLF & LastException) 84 | Log("API response: " & CRLF & Resp.ResponseString) 85 | End Try 86 | End Sub 87 | 88 | 'With this sub you build your frame. 89 | Sub App_genFrame 90 | App.genText(online,True,1,Null,False) 91 | App.drawBMP(0,0,App.getIcon(700),8,8) 92 | End Sub -------------------------------------------------------------------------------- /SuperAwtrix/Enemy.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=8.31 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Private moveTimer As Timer 9 | Dim xPos As Int 10 | Dim yPos As Int 11 | Dim savexPos As Int 12 | Dim saveyPos As Int 13 | Dim color()As Int 14 | Dim direction As Boolean 15 | Dim blocklist As List 16 | End Sub 17 | 18 | 'Initializes the object. You can add parameters to this method if needed. 19 | Public Sub Initialize(x As Int,y As Int,dir As Boolean,speed As Int,blocks As List) 20 | Select speed 21 | Case 1 22 | moveTimer.Initialize("move",300) 23 | Case 2 24 | moveTimer.Initialize("move",200) 25 | Case 3 26 | moveTimer.Initialize("move",100) 27 | Case Else 28 | moveTimer.Initialize("move",300) 29 | End Select 30 | savexPos=x 31 | saveyPos=y 32 | blocklist=blocks 33 | xPos=x 34 | yPos=y 35 | color= Array As Int(255,0,0) 36 | direction=dir 37 | End Sub 38 | 39 | Public Sub setBlocks(blocks As List) 40 | blocklist=blocks 41 | End Sub 42 | 43 | Public Sub reset 44 | xPos=savexPos 45 | yPos=saveyPos 46 | moveTimer.Enabled=True 47 | End Sub 48 | 49 | Public Sub stop 50 | moveTimer.Enabled=False 51 | End Sub 52 | 53 | 'move enemy with every timer tick 54 | Private Sub move_tick 55 | Select direction 56 | Case False 'move right 57 | If Not(isCollideX(xPos+1,yPos)) Then 58 | If isCollideY(xPos,yPos+1) Then 'only move if touching the ground 59 | xPos=xPos+1 60 | End If 61 | Else 62 | direction=Not(direction) 'Change direction 63 | End If 64 | Case True 'move left 65 | If Not(isCollideX(xPos-1,yPos)) Then 66 | If isCollideY(xPos,yPos+1) Then 'only move if touching the ground 67 | xPos=xPos-1 68 | End If 69 | Else 70 | direction=Not(direction) 'Change direction 71 | End If 72 | End Select 73 | 74 | If Not(isCollideY(xPos,yPos+1)) Then 75 | yPos=yPos+1 'Gravity 76 | End If 77 | 78 | End Sub 79 | 80 | Private Sub isCollideX(x As Int, y As Int) As Boolean 81 | For i=0 To blocklist.Size-1 82 | Dim b As Block=blocklist.Get(i) 83 | If b.y=y And x = b.x Then 84 | 85 | Return True 86 | End If 87 | Next 88 | Return False 89 | End Sub 90 | 91 | Private Sub isCollideY(x As Int, y As Int) As Boolean 92 | For i=0 To blocklist.Size-1 93 | Dim b As Block=blocklist.Get(i) 94 | If x = b.x And b.y=y Then 95 | Return True 96 | End If 97 | Next 98 | Return False 99 | End Sub -------------------------------------------------------------------------------- /CustomApp/CustomApp.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | End Sub 13 | 14 | ' ignore 15 | public Sub GetNiceName() As String 16 | Return App.name 17 | End Sub 18 | 19 | ' ignore 20 | public Sub Run(Tag As String, Params As Map) As Object 21 | Return App.interface(Tag,Params) 22 | End Sub 23 | 24 | ' Config your App 25 | Public Sub Initialize() As String 26 | 27 | 'initialize the AWTRIX class and parse the instance; dont touch this 28 | App.Initialize(Me,"App") 29 | 30 | 'App name (must be unique, no spaces) 31 | App.name = "CustomApp" 32 | 33 | 'Version of the App 34 | App.version = "1.1" 35 | 36 | 'Description of the App. You can use HTML to format it 37 | App.description = $" 38 | You can use this app to integrate your notifications firmly into the Apploop. 39 | "$ 40 | 41 | 'The developer if this App 42 | App.author = "Blueforcer" 43 | 44 | App.setupDescription= $" 45 | Use the App Sort function to place this app anywhere in your apploop. Each app gets its own ID (starting with 0). 46 | Now send your notifications via any API interface (MQTT: topic /customapp; REST: endpoint /api/v3/customapp) and add the key "ID" with the app ID. The notification will be saved and displayed continuously so you don't have to actively send the notification. You can overwrite any ID at any time. 47 | "$ 48 | 49 | 'Icon (ID) to be displayed in the Appstore and MyApps 50 | App.coverIcon = 1060 51 | 52 | 'define some tags to simplify the search in the Appstore 53 | App.tags = Array As String("Template", "Awesome") 54 | 55 | 'How many downloadhandlers should be generated 56 | App.downloads = 0 57 | 58 | 59 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 60 | App.tick = 65 61 | 62 | 'If set to true AWTRIX will wait for the "finish" command before switch to the next app. 63 | App.lock = False 64 | 65 | 'This tolds AWTRIX that this App is an Game. 66 | App.isGame = False 67 | 68 | 'If set to true, AWTRIX will download new data before each start. 69 | App.forceDownload = False 70 | 71 | 'ignore 72 | App.makeSettings 73 | Return "AWTRIX20" 74 | End Sub 75 | 76 | 'this sub is called right before AWTRIX will display your App 77 | Sub App_Started 78 | 79 | End Sub 80 | 81 | 'With this sub you build your frame wtih eveery Tick. 82 | Sub App_genFrame 83 | 84 | 85 | End Sub -------------------------------------------------------------------------------- /pr0gramm/pr0gramm.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=7.31 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | Dim benis As Int 11 | End Sub 12 | 13 | ' ignore 14 | Public Sub Initialize() As String 15 | 16 | App.Initialize(Me,"App") 17 | 18 | 'change plugin name (must be unique, avoid spaces) 19 | App.Name="pr0gramm" 20 | 21 | 'Version of the App 22 | App.Version="1.0" 23 | 24 | 'Description of the App. You can use HTML to format it 25 | App.Description=$"Show the lenght of your Benis"$ 26 | 27 | App.Author="Kevin" 28 | 29 | App.CoverIcon=399 30 | 31 | 'SetupInstructions. You can use HTML to format it 32 | App.setupDescription= $" 33 | Name: Enter your name from pr0gramm. 34 | "$ 35 | 36 | 'How many downloadhandlers should be generated 37 | App.Downloads=1 38 | 39 | 'IconIDs from AWTRIXER. 40 | App.Icons=Array As Int(399) 41 | 42 | 'Tickinterval in ms (should be 65 by default) 43 | App.Tick=65 44 | 45 | 46 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 47 | App.Settings=CreateMap("Name":"") 48 | 49 | App.MakeSettings 50 | Return "AWTRIX20" 51 | End Sub 52 | 53 | ' ignore 54 | public Sub GetNiceName() As String 55 | Return App.Name 56 | End Sub 57 | 58 | ' ignore 59 | public Sub Run(Tag As String, Params As Map) As Object 60 | Return App.interface(Tag,Params) 61 | End Sub 62 | 63 | 64 | 'Called with every update from Awtrix 65 | 'return one URL for each downloadhandler 66 | Sub App_startDownload(jobNr As Int) 67 | Select jobNr 68 | Case 1 69 | App.Download("https://pr0gramm.com/api/profile/info?name="&App.get("Name")&"&flags=1&self=false") 70 | End Select 71 | End Sub 72 | 73 | 'process the response from each download handler 74 | 'if youre working with JSONs you can use this online parser 75 | 'to generate the code automaticly 76 | 'https://json.blueforcer.de/ 77 | Sub App_evalJobResponse(Resp As JobResponse) 78 | Try 79 | If Resp.success Then 80 | Select Resp.jobNr 81 | Case 1 82 | Dim parser As JSONParser 83 | parser.Initialize(Resp.ResponseString) 84 | Dim root As Map = parser.NextObject 85 | Dim user As Map = root.Get("user") 86 | benis = user.Get("score") 87 | End Select 88 | End If 89 | Catch 90 | Log("Error in: "& App.Name & CRLF & LastException) 91 | Log("API response: " & CRLF & Resp.ResponseString) 92 | End Try 93 | End Sub 94 | 95 | 'Generate your Frame. This Sub is called with every Tick 96 | Sub App_genFrame 97 | App.genText(benis,True,1,Null,True) 98 | App.drawBMP(0,0,App.getIcon(399),8,8) 99 | End Sub -------------------------------------------------------------------------------- /Weibo/Weibo.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=1.0 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | 'Define your variables here 11 | Dim subs As String ="0" 12 | End Sub 13 | 14 | ' ignore 15 | Public Sub Initialize() As String 16 | 17 | App.Initialize(Me,"App") 18 | 19 | 'change plugin name (must be unique, avoid spaces) 20 | App.Name="Weibo" 21 | 22 | 'Version of the App 23 | App.Version="1.0" 24 | 25 | 'Description of the App. You can use HTML to format it 26 | App.Description="Shows your Weibo fans count" 27 | 28 | App.Author="UniqueDing" 29 | 30 | App.CoverIcon = 1293 31 | 32 | 'SetupInstructions. You can use HTML to format it 33 | App.setupDescription= $" 34 | MID: 35 | 41 | "$ 42 | 43 | 'How many downloadhandlers should be generated 44 | App.Downloads=1 45 | 46 | 'IconIDs from AWTRIXER. 47 | App.Icons=Array As Int(1294) 48 | 49 | 'Tickinterval in ms (should be 65 by default) 50 | App.Tick=65 51 | 52 | 53 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 54 | App.Settings=CreateMap("MID":"") 55 | 56 | App.MakeSettings 57 | Return "AWTRIX20" 58 | End Sub 59 | ' ignore 60 | public Sub GetNiceName() As String 61 | Return App.Name 62 | End Sub 63 | 64 | ' ignore 65 | public Sub Run(Tag As String, Params As Map) As Object 66 | Return App.interface(Tag,Params) 67 | End Sub 68 | 69 | 'Called with every update from Awtrix 70 | 'return one URL for each downloadhandler 71 | Sub App_startDownload(jobNr As Int) 72 | Select jobNr 73 | Case 1 74 | App.Download("http://awtrix.uniqueding.cn/weibo/"&App.Get("MID")) 75 | End Select 76 | 77 | End Sub 78 | 79 | Sub App_evalJobResponse(Resp As JobResponse) 80 | Try 81 | If Resp.success Then 82 | Select Resp.jobNr 83 | Case 1 84 | Dim parser As JSONParser 85 | parser.Initialize(Resp.ResponseString) 86 | Dim root As Map = parser.NextObject 87 | subs = root.Get("fans") 88 | End Select 89 | End If 90 | Catch 91 | Log("Error in: "& App.Name & CRLF & LastException) 92 | Log("API response: " & CRLF & Resp.ResponseString) 93 | End Try 94 | End Sub 95 | 96 | 'Generate your Frame. This Sub is called with every Tick 97 | Sub App_genFrame 98 | App.genText(subs,True,1,Null,True) 99 | App.drawBMP(0,0,App.getIcon(1294),8,8) 100 | End Sub -------------------------------------------------------------------------------- /Matomo/Matomo.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | Dim result As String = "0" 11 | End Sub 12 | 13 | ' ignore 14 | Public Sub Initialize() As String 15 | 16 | App.Initialize(Me,"App") 17 | 18 | 'change plugin name (must be unique, avoid spaces) 19 | App.Name="Matomo" 20 | 21 | 'Version of the App 22 | App.Version="1.0" 23 | 24 | 'Description of the App. You can use HTML to format it 25 | App.Description=$" 26 | Shows you the visitors of the transferred Matomo instance who were online during the given time period.
"$ 27 | 28 | App.Author="Dennis Hinzpeter" 29 | 30 | App.CoverIcon=68 31 | 32 | 33 | 'How many downloadhandlers should be generated 34 | App.Downloads=1 35 | 36 | 'IconIDs from AWTRIXER. 37 | App.Icons=Array As Int(68) 38 | 39 | 'Tickinterval in ms (should be 65 by default) 40 | App.Tick=65 41 | 42 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 43 | App.Settings=CreateMap("apiKey":"","siteID":"","baseURL":"","timeSpan":"") 44 | 45 | App.MakeSettings 46 | Return "AWTRIX20" 47 | End Sub 48 | 49 | ' ignore 50 | public Sub GetNiceName() As String 51 | Return App.Name 52 | End Sub 53 | 54 | ' ignore 55 | public Sub Run(Tag As String, Params As Map) As Object 56 | Return App.interface(Tag,Params) 57 | End Sub 58 | 59 | Public Sub AppStarted 60 | 61 | End Sub 62 | 63 | 'Called with every update from Awtrix 64 | 'return one URL for each downloadhandler 65 | Sub App_startDownload(jobNr As Int) 66 | Select jobNr 67 | Case 1 68 | App.Download(App.get("baseURL")&"/index.php?module=API&method=Live.getCounters&idSite="&App.get("siteID")&"&lastMinutes="&App.get("timeSpan")&"&format=JSON&token_auth="&App.get("apiKey")) 69 | End Select 70 | End Sub 71 | 72 | 'process the response from each download handler 73 | 'if youre working with JSONs you can use this online parser 74 | 'to generate the code automaticly 75 | 'https://json.blueforcer.de/ 76 | Sub App_evalJobResponse(Resp As JobResponse) 77 | Try 78 | If Resp.success Then 79 | Select Resp.jobNr 80 | Case 1 81 | Dim parser As JSONParser 82 | parser.Initialize(Resp.ResponseString.replace("[","").replace("]","")) 83 | Dim root As Map = parser.NextObject 84 | result = root.Get("visits") 85 | End Select 86 | End If 87 | Catch 88 | Log("Error in: "& App.Name & CRLF & LastException) 89 | Log("API response: " & CRLF & Resp.ResponseString) 90 | End Try 91 | End Sub 92 | 93 | Sub App_genFrame 94 | App.genText(result,True,1,Null,True) 95 | App.drawBMP(0,0,App.geticon(68),8,8) 96 | End Sub -------------------------------------------------------------------------------- /TronaldDump/TronaldDump.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | Dim QUOT As String 11 | End Sub 12 | 13 | ' Config your App 14 | Public Sub Initialize() As String 15 | 16 | App.Initialize(Me,"App") 17 | 18 | 'App name (must be unique, avoid spaces) 19 | App.Name="TronaldDump" 20 | 21 | 'Version of the App 22 | App.Version="1.0" 23 | 24 | 'Description of the App. You can use HTML to format it 25 | App.Description=$" 26 | Shows the dumbest things Donald Trump has ever said
27 | Powered by tronalddump.io 28 | "$ 29 | 30 | App.Author="Blueforcer" 31 | 32 | App.CoverIcon=516 33 | 34 | 'How many downloadhandlers should be generated 35 | App.Downloads=1 36 | 37 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 38 | App.Icons=Array As Int(516) 39 | 40 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 41 | App.Tick=65 42 | 43 | 'If set to true AWTRIX will wait for the "finish" command before switch to the next app. 44 | App.Lock=True 45 | 46 | App.forceDownload=True 47 | 48 | App.MakeSettings 49 | Return "AWTRIX20" 50 | End Sub 51 | 52 | ' ignore 53 | public Sub GetNiceName() As String 54 | Return App.Name 55 | End Sub 56 | 57 | ' ignore 58 | public Sub Run(Tag As String, Params As Map) As Object 59 | Return App.interface(Tag,Params) 60 | End Sub 61 | 62 | 'Called with every update from Awtrix 63 | 'return one URL for each downloadhandler 64 | Sub App_startDownload(jobNr As Int) 65 | Select jobNr 66 | Case 1 67 | App.Download("https://api.tronalddump.io/random/quote") 68 | End Select 69 | End Sub 70 | 71 | 'process the response from each download handler 72 | 'if youre working with JSONs you can use this online parser 73 | 'to generate the code automaticly 74 | 'https://json.blueforcer.de/ 75 | Sub App_evalJobResponse(Resp As JobResponse) 76 | Try 77 | If Resp.success Then 78 | Select Resp.jobNr 79 | Case 1 80 | Dim parser As JSONParser 81 | parser.Initialize(Resp.ResponseString) 82 | Dim root As Map = parser.NextObject 83 | QUOT = root.Get("value") 84 | End Select 85 | End If 86 | Catch 87 | Log("Error in: "& App.Name & CRLF & LastException) 88 | Log("API response: " & CRLF & Resp.ResponseString) 89 | End Try 90 | End Sub 91 | 92 | Sub App_genFrame 93 | App.genText(QUOT,True,1,Null,True) 94 | 95 | If App.scrollposition>9 Then 96 | App.drawBMP(0,0,App.getIcon(516),8,8) 97 | Else 98 | If App.scrollposition>-8 Then 99 | App.drawBMP(App.scrollposition-9,0,App.getIcon(516),8,8) 100 | End If 101 | End If 102 | End Sub 103 | -------------------------------------------------------------------------------- /Bilibili/Bilibili.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=1.0 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | 'Define your variables here 11 | Dim subs As String ="0" 12 | End Sub 13 | 14 | ' ignore 15 | Public Sub Initialize() As String 16 | 17 | App.Initialize(Me,"App") 18 | 19 | 'change plugin name (must be unique, avoid spaces) 20 | App.Name="Bilibili" 21 | 22 | 'Version of the App 23 | App.Version="1.0" 24 | 25 | 'Description of the App. You can use HTML to format it 26 | App.Description="This Is a App For a Bilibili Upper To show fans count." 27 | 28 | App.Author="Albert" 29 | 30 | App.CoverIcon = 9 31 | 32 | 'SetupInstructions. You can use HTML to format it 33 | App.setupDescription= $" 34 | MID: 35 | 40 | "$ 41 | 42 | 'How many downloadhandlers should be generated 43 | App.Downloads=1 44 | 45 | 'IconIDs from AWTRIXER. 46 | App.Icons=Array As Int(9) 47 | 48 | 'Tickinterval in ms (should be 65 by default) 49 | App.Tick=65 50 | 51 | 52 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 53 | App.Settings=CreateMap("MID":"") 54 | 55 | App.MakeSettings 56 | Return "AWTRIX20" 57 | End Sub 58 | ' ignore 59 | public Sub GetNiceName() As String 60 | Return App.Name 61 | End Sub 62 | 63 | ' ignore 64 | public Sub Run(Tag As String, Params As Map) As Object 65 | Return App.interface(Tag,Params) 66 | End Sub 67 | 68 | 'Called with every update from Awtrix 69 | 'return one URL for each downloadhandler 70 | Sub App_startDownload(jobNr As Int) 71 | Select jobNr 72 | Case 1 73 | App.Download("https://api.bilibili.com/x/relation/stat?vmid="&App.Get("MID")&"&jsonp=jsonp") 74 | End Select 75 | 76 | End Sub 77 | 78 | Sub App_evalJobResponse(Resp As JobResponse) 79 | Try 80 | If Resp.success Then 81 | Select Resp.jobNr 82 | Case 1 83 | Dim parser As JSONParser 84 | parser.Initialize(Resp.ResponseString) 85 | Dim root As Map = parser.NextObject 86 | Dim bdata As Map = root.Get("data") 87 | subs = bdata.Get("follower") 88 | End Select 89 | End If 90 | Catch 91 | Log("Error in: "& App.Name & CRLF & LastException) 92 | Log("API response: " & CRLF & Resp.ResponseString) 93 | End Try 94 | End Sub 95 | 96 | 'Generate your Frame. This Sub is called with every Tick 97 | Sub App_genFrame 98 | App.genText(subs,True,1,Array As Int(98,214,255),True) 99 | App.drawBMP(0,0,App.getIcon(9),8,8) 100 | App.drawLine(9,7,29,7,Array As Int(98,214,255)) 101 | End Sub -------------------------------------------------------------------------------- /GithubFollowers/GithubFollowers.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim followers As Int 13 | End Sub 14 | 15 | ' ignore 16 | public Sub GetNiceName() As String 17 | Return App.Name 18 | End Sub 19 | 20 | ' ignore 21 | public Sub Run(Tag As String, Params As Map) As Object 22 | Return App.interface(Tag,Params) 23 | End Sub 24 | 25 | ' Config your App 26 | Public Sub Initialize() As String 27 | 28 | App.Initialize(Me,"App") 29 | 30 | 'App name (must be unique, avoid spaces) 31 | App.Name="GithubFollowers" 32 | 33 | 'Version of the App 34 | App.Version="1.0" 35 | 36 | 'Description of the App. You can use HTML to format it 37 | App.Description=$"Shows your Github followers"$ 38 | 39 | App.Author="Blueforcer" 40 | 41 | App.CoverIcon=596 42 | 43 | 'SetupInstructions. You can use HTML to format it 44 | App.setupDescription= $" 45 | Username:Your Github Username
46 | "$ 47 | 48 | 'How many downloadhandlers should be generated 49 | App.Downloads=1 50 | 51 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 52 | App.Icons=Array As Int(596) 53 | 54 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 55 | App.Tick=65 56 | 57 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 58 | App.settings=CreateMap("Username":"Blueforcer") 59 | 60 | App.MakeSettings 61 | Return "AWTRIX20" 62 | End Sub 63 | 64 | 'this sub is called right before AWTRIX will display your App 65 | Sub App_Started 66 | 67 | End Sub 68 | 69 | 'Called with every update from Awtrix 70 | 'return one URL for each downloadhandler 71 | Sub App_startDownload(jobNr As Int) 72 | Select jobNr 73 | Case 1 74 | App.Download("https://api.github.com/users/" & App.get("Username")) 75 | End Select 76 | End Sub 77 | 78 | 'process the response from each download handler 79 | 'if youre working with JSONs you can use this online parser 80 | 'to generate the code automaticly 81 | 'https://json.blueforcer.de/ 82 | Sub App_evalJobResponse(Resp As JobResponse) 83 | Try 84 | If Resp.success Then 85 | Select Resp.jobNr 86 | Case 1 87 | Dim parser As JSONParser 88 | parser.Initialize(Resp.ResponseString) 89 | Dim root As Map = parser.NextObject 90 | followers = root.Get("followers") 91 | End Select 92 | End If 93 | Catch 94 | Log("Error in: "& App.Name & CRLF & LastException) 95 | Log("API response: " & CRLF & Resp.ResponseString) 96 | End Try 97 | End Sub 98 | 99 | 'With this sub you build your frame. 100 | Sub App_genFrame 101 | App.genText(followers,True,1,Null,True) 102 | App.drawBMP(0,0,App.getIcon(596),8,8) 103 | End Sub -------------------------------------------------------------------------------- /MyStrom/MyStrom.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=7.31 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | Dim state As Boolean 11 | Dim watt As Int = 0 12 | Dim IconID As Int 13 | End Sub 14 | 15 | ' ignore 16 | Public Sub Initialize() As String 17 | 18 | App.Initialize(Me,"App") 19 | 20 | 'change plugin name (must be unique, avoid spaces) 21 | App.Name="MyStrom" 22 | 23 | 'Version of the App 24 | App.Version="1.0" 25 | 26 | 'Description of the App. You can use HTML to format it 27 | App.Description=$"Shows the state and power consumption of your MyStrom SmartPlug"$ 28 | 29 | 'SetupInstructions. You can use HTML to format it 30 | App.setupDescription= $" 31 | IP: The IP Adress of your MyStrom SmartPlug
32 | "$ 33 | 34 | App.Author="Blueforcer" 35 | 36 | App.CoverIcon=398 37 | 38 | 'How many downloadhandlers should be generated 39 | App.Downloads=1 40 | 41 | 'IconIDs from AWTRIXER. 42 | App.Icons=Array As Int(397,398) 43 | 44 | 'Tickinterval in ms (should be 65 by default) 45 | App.Tick=65 46 | 47 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 48 | App.Settings= CreateMap("IP":"") 49 | 50 | App.MakeSettings 51 | Return "AWTRIX20" 52 | End Sub 53 | 54 | ' ignore 55 | public Sub GetNiceName() As String 56 | Return App.Name 57 | End Sub 58 | 59 | ' ignore 60 | public Sub Run(Tag As String, Params As Map) As Object 61 | Return App.interface(Tag,Params) 62 | End Sub 63 | 64 | 65 | 'Called with every update from Awtrix 66 | 'return one URL for each downloadhandler 67 | Sub App_startDownload(jobNr As Int) 68 | Select jobNr 69 | Case 1 70 | App.Download("http://"&App.Get("IP")&"/report") 71 | End Select 72 | 73 | End Sub 74 | 75 | Sub App_iconRequest 76 | App.Icons=Array As Int(IconID) 77 | End Sub 78 | 79 | 'process the response from each download handler 80 | 'if youre working with JSONs you can use this online parser 81 | 'to generate the code automaticly 82 | 'https://json.blueforcer.de/ 83 | Sub App_evalJobResponse(Resp As JobResponse) 84 | Try 85 | If Resp.success Then 86 | Select Resp.jobNr 87 | Case 1 88 | Dim parser As JSONParser 89 | parser.Initialize(Resp.ResponseString) 90 | Dim root As Map = parser.NextObject 91 | state = root.Get("relay") 92 | watt = root.Get("power") 93 | If state Then 94 | IconID=398 95 | Else 96 | IconID=397 97 | End If 98 | End Select 99 | End If 100 | Catch 101 | Log("Error in: "& App.Name & CRLF & LastException) 102 | Log("API response: " & CRLF & Resp.ResponseString) 103 | End Try 104 | End Sub 105 | 106 | Sub App_genFrame 107 | App.genText(watt& "W",True,1,Null,True) 108 | App.drawBMP(0,0,App.getIcon(IconID),8,8) 109 | End Sub 110 | -------------------------------------------------------------------------------- /Pinterest/Pinterest.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | Dim follower_count As String = "0" 11 | End Sub 12 | 13 | 14 | ' ignore 15 | Public Sub Initialize() As String 16 | 17 | App.Initialize(Me,"App") 18 | 19 | 'change plugin name (must be unique, avoid spaces) 20 | App.Name="Pinterest" 21 | 22 | 'Version of the App 23 | App.Version="1.0" 24 | 25 | 'Description of the App. You can use HTML to format it 26 | App.Description="Shows your pinterest follower count." 27 | 28 | 'SetupInstructions. You can use HTML to format it 29 | App.setupDescription= $" 30 | Username: As the name implies, your pinterest Username. 31 | "$ 32 | 33 | App.Author="Blueforcer" 34 | 35 | App.CoverIcon=88 36 | 37 | 'How many downloadhandlers should be generated 38 | App.Downloads=1 39 | 40 | 'IconIDs from AWTRIXER. 41 | App.Icons=Array As Int(88) 42 | 43 | 'Tickinterval in ms (should be 65 by default) 44 | App.tick=65 45 | 46 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 47 | App.settings=CreateMap("Username":"") 48 | 49 | App.MakeSettings 50 | Return "AWTRIX20" 51 | End Sub 52 | 53 | ' ignore 54 | public Sub GetNiceName() As String 55 | Return App.Name 56 | End Sub 57 | 58 | ' ignore 59 | public Sub Run(Tag As String, Params As Map) As Object 60 | Return App.interface(Tag,Params) 61 | End Sub 62 | 63 | 64 | 'Called with every update from Awtrix 65 | 'return one URL for each downloadhandler 66 | Sub App_startDownload(jobNr As Int) 67 | Select jobNr 68 | Case 1 69 | App.Download("https://www.pinterest.de/"&App.get("Username")) 70 | End Select 71 | End Sub 72 | 73 | 'process the response from each download handler 74 | 'if youre working with JSONs you can use this online parser 75 | 'to generate the code automaticly 76 | 'https://json.blueforcer.de/ 77 | Sub App_evalJobResponse(Resp As JobResponse) 78 | Try 79 | If Resp.success Then 80 | Select Resp.jobNr 81 | Case 1 82 | Dim Reader As TextReader 83 | Reader.Initialize(Resp.Stream) 84 | Dim line As String 85 | line = Reader.ReadLine 86 | Do While line <> Null 87 | If line.Contains("""follower_count"":") Then 88 | follower_count=line.SubString2(line.IndexOf("follower_count"":")+17,line.IndexOf(", ""domain_url")).Trim 89 | Exit 90 | End If 91 | line = Reader.ReadLine 92 | Loop 93 | Reader.Close 94 | End Select 95 | End If 96 | Catch 97 | Log("Error in: "& App.Name & CRLF & LastException) 98 | Log("API response: " & CRLF & Resp.ResponseString) 99 | End Try 100 | End Sub 101 | 102 | 103 | Sub App_genFrame 104 | App.genText(follower_count,True,1,Null,True) 105 | App.drawBMP(0,0,App.getIcon(88),8,8) 106 | End Sub -------------------------------------------------------------------------------- /PM/PM.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | Dim pmValue As String ="0" 10 | End Sub 11 | 12 | ' ignore 13 | Public Sub Initialize() As String 14 | 15 | App.Initialize(Me,"App") 16 | 17 | 'change plugin name (must be unique, avoid spaces) 18 | App.Name="PM" 19 | 20 | 'Version of the App 21 | App.Version="1.0" 22 | 23 | 'Description of the App. You can use HTML to format it 24 | App.Description="Shows the atmospheric particulate matter (PM2.5)" 25 | 26 | App.Author="Blueforcer" 27 | 28 | App.CoverIcon=2 29 | 30 | 'SetupInstructions. You can use HTML to format it 31 | App.setupDescription= $" 32 | Location: Get you location from https://openaq.org/#/map e.g. "DEHE041". 33 | "$ 34 | 35 | 'How many downloadhandlers should be generated 36 | App.Downloads=1 37 | 38 | 'IconIDs from AWTRIXER. 39 | App.Icons=Array As Int(2) 40 | 41 | 'Tickinterval in ms (should be 65 by default) 42 | App.Tick=65 43 | 44 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 45 | App.Settings=CreateMap("Location":"DEHE041") 46 | 47 | App.MakeSettings 48 | 49 | Return "AWTRIX20" 50 | End Sub 51 | 52 | ' ignore 53 | public Sub GetNiceName() As String 54 | Return App.Name 55 | End Sub 56 | 57 | ' ignore 58 | public Sub Run(Tag As String, Params As Map) As Object 59 | Return App.interface(Tag,Params) 60 | End Sub 61 | 62 | 'Called with every update from Awtrix 63 | 'return one URL for each downloadhandler 64 | Sub App_startDownload(jobNr As Int) 65 | Select jobNr 66 | Case 1 67 | App.Download("https://api.openaq.org/v1/latest?location="&App.get("Location")&"¶meter=pm25") 68 | End Select 69 | 70 | End Sub 71 | 72 | 'process the response from each download handler 73 | 'if youre working with JSONs you can use this online parser 74 | 'to generate the code automaticly 75 | 'https://json.blueforcer.de/ 76 | Sub App_evalJobResponse(Resp As JobResponse) 77 | Try 78 | If Resp.success Then 79 | Select Resp.jobNr 80 | Case 1 81 | Dim parser As JSONParser 82 | parser.Initialize(Resp.ResponseString) 83 | Dim root As Map = parser.NextObject 84 | Dim results As List = root.Get("results") 85 | For Each colresults As Map In results 86 | Dim measurements As List = colresults.Get("measurements") 87 | For Each colmeasurements As Map In measurements 88 | pmValue = colmeasurements.Get("value") 89 | Next 90 | Next 91 | End Select 92 | End If 93 | Catch 94 | Log("Error in: "& App.Name & CRLF & LastException) 95 | Log("API response: " & CRLF & Resp.ResponseString) 96 | End Try 97 | End Sub 98 | 99 | Sub App_genFrame 100 | App.genText(pmValue,True,1,Null,True) 101 | App.drawBMP(0,0,App.getIcon(2),8,8) 102 | End Sub -------------------------------------------------------------------------------- /Twitter/Twitter.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | Dim followers As String ="0" 11 | End Sub 12 | 13 | ' Config your App 14 | Public Sub Initialize() As String 15 | 16 | App.Initialize(Me,"App") 17 | 18 | 'App name (must be unique, avoid spaces) 19 | App.Name="Twitter" 20 | 21 | 'Version of the App 22 | App.Version="1.0" 23 | 24 | 'Description of the App. You can use HTML to format it 25 | App.Description="Shows your Twitter Follower count." 26 | 27 | 'SetupInstructions. You can use HTML to format it 28 | App.setupDescription= $" 29 | Profilename: As the name implies, your twitter profile name. 30 | "$ 31 | 32 | App.Author="Blueforcer" 33 | 34 | App.CoverIcon=142 35 | 36 | 'How many downloadhandlers should be generated 37 | App.downloads=1 38 | 39 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 40 | App.Icons=Array As Int(142) 41 | 42 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 43 | App.Tick=65 44 | 45 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 46 | App.Settings=CreateMap("Profilename":"") 47 | 48 | App.MakeSettings 49 | Return "AWTRIX20" 50 | End Sub 51 | 52 | ' ignore 53 | public Sub GetNiceName() As String 54 | Return App.Name 55 | End Sub 56 | 57 | ' ignore 58 | public Sub Run(Tag As String, Params As Map) As Object 59 | Return App.interface(Tag,Params) 60 | End Sub 61 | 62 | 63 | 'Called with every update from Awtrix 64 | 'return one URL for each downloadhandler 65 | Sub App_startDownload(jobNr As Int) 66 | Select jobNr 67 | Case 1 68 | App.Download("http://cdn.syndication.twimg.com/widgets/followbutton/info.json?screen_names="& App.get("Profilename")) 69 | End Select 70 | End Sub 71 | 72 | 'process the response from each download handler 73 | 'if youre working with JSONs you can use this online parser 74 | 'to generate the code automaticly 75 | 'https://json.blueforcer.de/ 76 | Sub App_evalJobResponse(Resp As JobResponse) 77 | Try 78 | If Resp.success Then 79 | Select Resp.jobNr 80 | Case 1 81 | Dim parser As JSONParser 82 | parser.Initialize(Resp.ResponseString) 83 | Dim root As List = parser.NextArray 84 | For Each colroot As Map In root 85 | followers = colroot.Get("followers_count") 86 | Next 87 | End Select 88 | End If 89 | Catch 90 | Log("Error in: "& App.name & CRLF & LastException) 91 | Log("API response: " & CRLF & Resp.ResponseString) 92 | End Try 93 | End Sub 94 | 95 | 96 | 'is called every tick, generates the commandlist (drawingroutines) and send it to awtrix 97 | Sub App_genFrame 98 | App.genText(followers,True,1,Null,True) 99 | App.drawBMP(0,0,App.getIcon(142),8,8) 100 | End Sub -------------------------------------------------------------------------------- /YearProgress/YearProgress.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim percentDone As Double 13 | 14 | End Sub 15 | 16 | ' ignore 17 | public Sub GetNiceName() As String 18 | Return App.name 19 | End Sub 20 | 21 | ' ignore 22 | public Sub Run(Tag As String, Params As Map) As Object 23 | Return App.interface(Tag,Params) 24 | End Sub 25 | 26 | ' Config your App 27 | Public Sub Initialize() As String 28 | 29 | 'initialize the AWTRIX class and parse the instance; dont touch this 30 | App.Initialize(Me,"App") 31 | 32 | 'App name (must be unique, no spaces) 33 | App.name = "YearProgress" 34 | 35 | 'Version of the App 36 | App.version = "1.0" 37 | 38 | 'Description of the App. You can use HTML to format it 39 | App.description = $" 40 | Displays the progress of the year in percent. 41 | "$ 42 | 43 | 'The developer if this App 44 | App.author = "Blueforcer" 45 | 46 | 'Icon (ID) to be displayed in the Appstore and MyApps 47 | App.coverIcon = 916 48 | 49 | 50 | 51 | 'define some tags to simplify the search in the Appstore 52 | App.tags = Array As String("time", "date") 53 | 54 | 'How many downloadhandlers should be generated 55 | App.downloads = 0 56 | 57 | 'IconIDs from AWTRIXER. You can add multiple if you need more 58 | App.icons = Array As Int(916) 59 | 60 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 61 | App.tick = 65 62 | 63 | 'If set to true AWTRIX will wait for the "finish" command before switch to the next app. 64 | App.lock = False 65 | 66 | 'This tolds AWTRIX that this App is an Game. 67 | App.isGame = False 68 | 69 | 'If set to true, AWTRIX will download new data before each start. 70 | App.forceDownload = False 71 | 72 | 'ignore 73 | App.makeSettings 74 | Return "AWTRIX20" 75 | End Sub 76 | 77 | 'this sub is called right before AWTRIX will display your App 78 | Sub App_Started 79 | Dim savedFormat As String= DateTime.DateFormat 80 | DateTime.DateFormat = "dd/MM/yyyy" 81 | Dim currentYear As String = DateTime.GetYear(DateTime.Now) 82 | Dim nextYear As String= DateTime.GetYear(DateTime.Now)+1 83 | Dim TargetTime As Long = DateTime.DateParse("01/01/" & nextYear) 84 | Dim StartTime As Long = DateTime.DateParse("01/01/" & currentYear) 85 | percentDone = NumberFormat(((DateTime.Now-StartTime)/(TargetTime-StartTime))*100,0,2) 86 | DateTime.DateFormat=savedFormat 87 | End Sub 88 | 89 | 'this sub is called if AWTRIX switch to thee next app and pause this one 90 | Sub App_Exited 91 | 92 | End Sub 93 | 94 | 95 | 96 | 'With this sub you build your frame wtih eveery Tick. 97 | Sub App_genFrame 98 | App.genText(percentDone&"%" ,True,1,Null,False) 99 | App.drawBMP(0,0,App.getIcon(916),8,8) 100 | End Sub -------------------------------------------------------------------------------- /Instagram/Instagram2.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | 'declare needed variables 11 | Dim Followers As String 12 | End Sub 13 | 14 | ' ignore 15 | Public Sub Initialize() As String 16 | 17 | App.Initialize(Me,"App") 18 | 19 | 'change plugin name (must be unique, avoid spaces) 20 | App.Name="Instagram2" 21 | 22 | 'Version of the App 23 | App.Version="1.0" 24 | 25 | 'Description of the App. You can use HTML to format it 26 | App.Description=$"Shows your Instagram followers"$ 27 | 28 | App.Author="Blueforcer" 29 | 30 | App.CoverIcon=58 31 | 32 | 'SetupInstructions. You can use HTML to format it 33 | App.setupDescription= $" 34 | Profilename: As the name implies, your instagram profile name. 35 | "$ 36 | 37 | 'How many downloadhandlers should be generated 38 | App.Downloads=1 39 | 40 | 'IconIDs from AWTRIXER. 41 | App.Icons=Array As Int(58) 42 | 43 | 'Tickinterval in ms (should be 65 by default) 44 | App.Tick=65 45 | 46 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 47 | App.Settings=CreateMap("Profilename":"") 48 | 49 | App.MakeSettings 50 | Return "AWTRIX20" 51 | End Sub 52 | 53 | ' ignore 54 | public Sub GetNiceName() As String 55 | Return App.Name 56 | End Sub 57 | 58 | ' ignore 59 | public Sub Run(Tag As String, Params As Map) As Object 60 | Return App.interface(Tag,Params) 61 | End Sub 62 | 63 | 64 | 'Called with every update from Awtrix 65 | 'return one URL for each downloadhandler 66 | Sub App_startDownload(jobNr As Int) 67 | Select jobNr 68 | Case 1 69 | App.Download("https://www.instagram.com/"&App.get("Profilename")&"/") 70 | End Select 71 | End Sub 72 | 73 | 74 | 'process the response from each download handler 75 | 'if youre working with JSONs you can use this online parser 76 | 'to generate the code automaticly 77 | 'https://json.blueforcer.de/ 78 | Sub App_evalJobResponse(Resp As JobResponse) 79 | Try 80 | If Resp.success Then 81 | Select Resp.jobNr 82 | Case 1 83 | Dim Reader As TextReader 84 | Reader.Initialize(Resp.Stream) 85 | Dim line As String 86 | line = Reader.ReadLine 87 | Do While line <> Null 88 | If line.Contains("Followers") Then 89 | Followers=line.SubString2(line.IndexOf("""")+1,line.IndexOf("Followers")-1) 90 | Followers=Followers.Replace(",","") 91 | Exit 92 | End If 93 | line = Reader.ReadLine 94 | Loop 95 | Reader.Close 96 | End Select 97 | End If 98 | Catch 99 | Log("Error in: "& App.Name & CRLF & LastException) 100 | Log("API response: " & CRLF & Resp.ResponseString) 101 | End Try 102 | End Sub 103 | 104 | Sub App_genFrame 105 | App.genText(Followers,True,1,Null,True) 106 | App.drawBMP(0,0,App.getIcon(58),8,8) 107 | End Sub 108 | -------------------------------------------------------------------------------- /Instagram/Instagram.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | 'declare needed variables 11 | Dim Followers As String 12 | End Sub 13 | 14 | ' ignore 15 | Public Sub Initialize() As String 16 | 17 | App.Initialize(Me,"App") 18 | 19 | 'change plugin name (must be unique, avoid spaces) 20 | App.Name="Instagram" 21 | 22 | 'Version of the App 23 | App.Version="1.3" 24 | 25 | 'Description of the App. You can use HTML to format it 26 | App.Description=$"Shows your Instagram followers"$ 27 | 28 | App.Author="Blueforcer" 29 | 30 | App.CoverIcon=58 31 | 32 | 'SetupInstructions. You can use HTML to format it 33 | App.setupDescription= $" 34 | Profilename: As the name implies, your instagram profile name. 35 | "$ 36 | 37 | 'How many downloadhandlers should be generated 38 | App.Downloads=1 39 | 40 | 'IconIDs from AWTRIXER. 41 | App.Icons=Array As Int(58) 42 | 43 | 'Tickinterval in ms (should be 65 by default) 44 | App.Tick=65 45 | 46 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 47 | App.Settings=CreateMap("Profilename":"") 48 | 49 | App.MakeSettings 50 | Return "AWTRIX20" 51 | End Sub 52 | 53 | ' ignore 54 | public Sub GetNiceName() As String 55 | Return App.Name 56 | End Sub 57 | 58 | ' ignore 59 | public Sub Run(Tag As String, Params As Map) As Object 60 | Return App.interface(Tag,Params) 61 | End Sub 62 | 63 | 64 | 'Called with every update from Awtrix 65 | 'return one URL for each downloadhandler 66 | Sub App_startDownload(jobNr As Int) 67 | Select jobNr 68 | Case 1 69 | App.Download("https://www.instagram.com/"&App.get("Profilename")&"/?__a=1") 70 | App.Header= CreateMap("User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36") 71 | End Select 72 | End Sub 73 | 74 | 75 | 'process the response from each download handler 76 | 'if youre working with JSONs you can use this online parser 77 | 'to generate the code automaticly 78 | 'https://json.blueforcer.de/ 79 | Sub App_evalJobResponse(Resp As JobResponse) 80 | Try 81 | If Resp.success Then 82 | Select Resp.jobNr 83 | Case 1 84 | Dim jp As JSONParser 85 | jp.Initialize(Resp.ResponseString) 86 | Dim root As Map = jp.NextObject 87 | Dim graphql As Map = root.Get("graphql") 88 | Dim user As Map = graphql.Get("user") 89 | Dim edge_followed_by As Map = user.Get("edge_followed_by") 90 | Followers = edge_followed_by.Get("count") 91 | End Select 92 | End If 93 | Catch 94 | Log("Error in: "& App.Name & CRLF & LastException) 95 | Log("API response: " & CRLF & Resp.ResponseString) 96 | End Try 97 | End Sub 98 | 99 | Sub App_genFrame 100 | App.genText(Followers,True,1,Null,True) 101 | App.drawBMP(0,0,App.getIcon(58),8,8) 102 | End Sub 103 | -------------------------------------------------------------------------------- /reddit/reddit.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim karma As Int 13 | End Sub 14 | 15 | ' ignore 16 | public Sub GetNiceName() As String 17 | Return App.name 18 | End Sub 19 | 20 | ' ignore 21 | public Sub Run(Tag As String, Params As Map) As Object 22 | Return App.interface(Tag,Params) 23 | End Sub 24 | 25 | ' Config your App 26 | Public Sub Initialize() As String 27 | 28 | 'initialize the AWTRIX class and parse the instance; dont touch this 29 | App.Initialize(Me,"App") 30 | 31 | 'App name (must be unique, no spaces) 32 | App.name = "reddit" 33 | 34 | 'Version of the App 35 | App.version = "1.0" 36 | 37 | 'Description of the App. You can use HTML to format it 38 | App.description = $" 39 | Shows your reddit Karma. 40 | "$ 41 | 42 | 'The developer if this App 43 | App.author = "Blueforcer" 44 | 45 | 'Icon (ID) to be displayed in the Appstore and MyApps 46 | App.coverIcon = 207 47 | 48 | 49 | 'How many downloadhandlers should be generated 50 | App.downloads = 1 51 | 52 | 'IconIDs from AWTRIXER. You can add multiple if you need more 53 | App.icons = Array As Int(207) 54 | 55 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 56 | App.tick = 65 57 | 58 | 59 | App.InitializeOAuth("https://www.reddit.com/api/v1/authorize","https://www.reddit.com/api/v1/access_token","6cwWWPIyo4NJtQ","0kLtLu5zCDpn1zvFOFPhVrmnxcY","mysubreddits") 60 | 61 | 'ignore 62 | App.makeSettings 63 | Return "AWTRIX20" 64 | End Sub 65 | 66 | 67 | 'Called with every update from Awtrix 68 | 'return one URL for each downloadhandler 69 | Sub App_startDownload(jobNr As Int) 70 | Select jobNr 71 | Case 1 72 | App.Download("https://oauth.reddit.com/api/v1/me/karma") 73 | App.header= CreateMap("Authorization": "Bearer " & App.Token) 74 | End Select 75 | End Sub 76 | 77 | 'process the response from each download handler 78 | 'if youre working with JSONs you can use this online parser 79 | 'to generate the code automaticly 80 | 'https://json.blueforcer.de/ 81 | Sub App_evalJobResponse(Resp As JobResponse) 82 | Try 83 | If Resp.success Then 84 | Select Resp.jobNr 85 | Case 1 86 | karma=0 87 | Dim parser As JSONParser 88 | parser.Initialize(Resp.ResponseString) 89 | Dim root As Map = parser.NextObject 90 | Dim data As List = root.Get("data") 91 | For Each coldata As Map In data 92 | karma = karma+ coldata.Get("comment_karma") 93 | karma = karma+ coldata.Get("link_karma") 94 | Next 95 | End Select 96 | End If 97 | Catch 98 | App.throwError(LastException) 99 | End Try 100 | End Sub 101 | 102 | 'With this sub you build your frame wtih eveery Tick. 103 | Sub App_genFrame 104 | App.genText(karma,True,1,Null,False) 105 | App.drawBMP(0,0,App.getIcon(207),8,8) 106 | End Sub -------------------------------------------------------------------------------- /MinecraftServer/MinecraftServer.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | Dim playersNow As Int 10 | End Sub 11 | 12 | ' ignore 13 | Public Sub Initialize() As String 14 | 15 | App.Initialize(Me,"App") 16 | 17 | 'change plugin name (must be unique, avoid spaces) 18 | App.Name="MinecraftServer" 19 | 20 | 'Version of the App 21 | App.Version="1.0" 22 | 23 | 'Description of the App. You can use HTML to format it 24 | App.Description=$" 25 | Shows the player count of a Minecraft Server
26 | Only appears if the server is online 27 | "$ 28 | 29 | App.Author="Blueforcer" 30 | 31 | App.CoverIcon=172 32 | 33 | 'SetupInstructions. You can use HTML to format it 34 | App.setupDescription= $" 35 | Host: The Hostname or IP-Adress of the Minecraft server.
36 | "$ 37 | 38 | 'How many downloadhandlers should be generated 39 | App.Downloads=1 40 | 41 | 'IconIDs from AWTRIXER. 42 | App.Icons=Array As Int(172) 43 | 44 | 'Tickinterval in ms (should be 65 by default) 45 | App.Tick=65 46 | 47 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 48 | App.Settings=CreateMap("Host":"hub.mcs.gg") 49 | 50 | App.MakeSettings 51 | Return "AWTRIX20" 52 | End Sub 53 | ' ignore 54 | public Sub GetNiceName() As String 55 | Return App.Name 56 | End Sub 57 | 58 | ' ignore 59 | public Sub Run(Tag As String, Params As Map) As Object 60 | Return App.interface(Tag,Params) 61 | End Sub 62 | 63 | 'Called with every update from Awtrix 64 | 'return one URL for each downloadhandler 65 | Sub App_startDownload(jobNr As Int) 66 | Select jobNr 67 | Case 1 68 | App.Download("https://mcapi.us/server/status?ip="&App.get("Host")) 69 | End Select 70 | End Sub 71 | 72 | 'process the response from each download handler 73 | 'if youre working with JSONs you can use this online parser 74 | 'to generate the code automaticly 75 | 'https://json.blueforcer.de/ 76 | Sub App_evalJobResponse(Resp As JobResponse) 77 | Try 78 | If Resp.success Then 79 | Select Resp.jobNr 80 | Case 1 81 | App.ShouldShow=True 82 | Dim parser As JSONParser 83 | parser.Initialize(Resp.ResponseString) 84 | Dim root As Map = parser.NextObject 85 | Dim status As String = root.Get("status") 86 | If status="error" Then 87 | App.ShouldShow=False 88 | If root.ContainsKey("error") Then 89 | Log(root.Get("error")) 90 | End If 91 | Else 92 | Dim players As Map = root.Get("players") 93 | playersNow = players.Get("now") 94 | End If 95 | End Select 96 | End If 97 | Catch 98 | Log("Error in: "& App.Name & CRLF & LastException) 99 | Log("API response: " & CRLF & Resp.ResponseString) 100 | End Try 101 | End Sub 102 | 103 | Sub App_genFrame 104 | App.genText(playersNow,True,1,Null,False) 105 | App.drawBMP(0,0,App.getIcon(172),8,8) 106 | End Sub 107 | -------------------------------------------------------------------------------- /Mixer/Mixer.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | Dim followers As String = "0" 11 | Dim viewers As String = "0" 12 | Dim isStreaming As Boolean 13 | Dim iconID As Int 14 | End Sub 15 | 16 | ' ignore 17 | Public Sub Initialize() As String 18 | 19 | App.Initialize(Me,"App") 20 | 21 | 'change plugin name (must be unique, avoid spaces) 22 | App.Name="Mixer" 23 | 24 | 'Version of the App 25 | App.Version="1.0" 26 | 27 | 'Description of the App. You can use HTML to format it 28 | App.Description=$"Shows your mixer subscriber count or your live viewers while youre streaming"$ 29 | 30 | 31 | 'SetupInstructions. You can use HTML to format it 32 | App.setupDescription= $" 33 | Profile: Your mixer profile name. 34 | "$ 35 | 36 | App.Author="Blueforcer" 37 | 38 | App.CoverIcon=489 39 | 40 | 'How many downloadhandlers should be generated 41 | App.Downloads=1 42 | 43 | 'IconIDs from AWTRIXER. 44 | App.Icons=Array As Int(489,488) 45 | 46 | 'Tickinterval in ms (should be 65 by default) 47 | App.Tick=65 48 | 49 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 50 | App.Settings=CreateMap("Profile":"") 51 | 52 | App.MakeSettings 53 | Return "AWTRIX20" 54 | End Sub 55 | 56 | ' ignore 57 | public Sub GetNiceName() As String 58 | Return App.Name 59 | End Sub 60 | 61 | ' ignore 62 | public Sub Run(Tag As String, Params As Map) As Object 63 | Return App.interface(Tag,Params) 64 | End Sub 65 | 66 | Sub App_iconRequest 67 | App.Icons=Array As Int(iconID) 68 | End Sub 69 | 70 | 'Called with every update from Awtrix 71 | 'return one URL for each downloadhandler 72 | Sub App_startDownload(jobNr As Int) 73 | Select jobNr 74 | Case 1 75 | App.Download("https://mixer.com/api/v1/channels/"&App.get("Profile")) 76 | End Select 77 | End Sub 78 | 79 | 'process the response from each download handler 80 | 'if youre working with JSONs you can use this online parser 81 | 'to generate the code automaticly 82 | 'https://json.blueforcer.de/ 83 | Sub App_evalJobResponse(Resp As JobResponse) 84 | Try 85 | If Resp.success Then 86 | Select Resp.jobNr 87 | Case 1 88 | isStreaming=False 89 | Dim parser As JSONParser 90 | parser.Initialize(Resp.ResponseString) 91 | Dim root As Map = parser.NextObject 92 | followers = root.Get("numFollowers") 93 | If root.Get("online") Then 94 | isStreaming=True 95 | iconID=489 96 | viewers = root.Get("viewersCurrent") 97 | Else 98 | iconID=488 99 | End If 100 | End Select 101 | End If 102 | Catch 103 | Log("Error in: "& App.Name & CRLF & LastException) 104 | Log("API response: " & CRLF & Resp.ResponseString) 105 | End Try 106 | End Sub 107 | 108 | Sub App_genFrame 109 | If isStreaming Then 110 | App.genText(viewers,True,1,Null,False) 111 | App.drawBMP(0,0,App.getIcon(iconID),8,8) 112 | Else 113 | App.genText(followers,True,1,Null,False) 114 | App.drawBMP(0,0,App.getIcon(iconID),8,8) 115 | End If 116 | End Sub -------------------------------------------------------------------------------- /HappyBirthday/HappyBirthday.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | Dim repeats As Int 12 | Dim displayTyp As Int 13 | Dim birthdayText As String 14 | End Sub 15 | 16 | ' ignore 17 | public Sub GetNiceName() As String 18 | Return App.name 19 | End Sub 20 | 21 | ' ignore 22 | public Sub Run(Tag As String, Params As Map) As Object 23 | Return App.interface(Tag,Params) 24 | End Sub 25 | 26 | ' Config your App 27 | Public Sub Initialize() As String 28 | 29 | 'initialize the AWTRIX class and parse the instance; dont touch this 30 | App.Initialize(Me,"App") 31 | 32 | 'App name (must be unique, no spaces) 33 | App.name = "HappyBirthday" 34 | 35 | 'Version of the App 36 | App.version = "1.2" 37 | 38 | 'Description of the App. You can use HTML to format it 39 | App.description = $"Shows birthday congratulations"$ 40 | 41 | 'The developer if this App 42 | App.author = "jzech" 43 | 44 | 'Icon (ID) to be displayed in the Appstore and MyApps 45 | App.coverIcon = 1302 46 | 47 | 'Setup Instructions. You can use HTML to format it 48 | App.setupDescription = $" 49 | Name: Name of birthday persond
50 | "$ 51 | 52 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 53 | App.Settings=CreateMap("Name":"jzech") 54 | 55 | 'define some tags to simplify the search in the Appstore 56 | App.tags = Array As String("Happy Birthday", "Congratulation") 57 | 58 | 'How many downloadhandlers should be generated 59 | App.downloads = 0 60 | 61 | 'IconIDs from AWTRIXER. You can add multiple if you need more 62 | App.icons = Array As Int(1302) 63 | 64 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 65 | App.tick = 65 66 | 67 | 'If set to true AWTRIX will wait for the "finish" command before switch to the next app. 68 | App.lock = False 69 | 70 | 'This tolds AWTRIX that this App is an Game. 71 | App.isGame = False 72 | 73 | 'If set to true, AWTRIX will download new data before each start. 74 | App.forceDownload = False 75 | 76 | 'ignore 77 | App.makeSettings 78 | Return "AWTRIX20" 79 | End Sub 80 | 81 | 'this sub is called right before AWTRIX will display your App 82 | Sub App_Started 83 | displayTyp = 1 84 | repeats = 0 85 | birthdayText = "Happy Birthday " & App.get("Name") 86 | End Sub 87 | 88 | 'If the user change any Settings in the webinterface, this sub will be called 89 | Sub App_settingsChanged 90 | birthdayText = "Happy Birthday " & App.get("Name") 91 | End Sub 92 | 93 | 'With this sub you build your frame wtih eveery Tick. 94 | Sub App_genFrame 95 | Dim count As Int 96 | If (displayTyp > 0) Then 97 | count = App.showMulticolorText(1302, birthdayText,1, App.rainbowList) 98 | Else 99 | count = App.showMulticolorFalling(1302, birthdayText, App.rainbowList, True) 100 | End If 101 | 102 | If (count = 0) Then repeats = repeats + 1 103 | If (repeats > 1) Then 104 | App.resetLocalTickCount 105 | repeats = 0 106 | displayTyp = -1 * displayTyp 107 | End If 108 | End Sub 109 | 110 | 111 | -------------------------------------------------------------------------------- /Facebook/Facebook.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | 'necessary variable declaration 11 | Dim likes As String ="=" 12 | End Sub 13 | 14 | 15 | ' ignore 16 | Public Sub Initialize() As String 17 | 18 | App.Initialize(Me,"App") 19 | 20 | 'change plugin name (must be unique, avoid spaces) 21 | App.Name="Facebook" 22 | 23 | 'Version of the App 24 | App.Version="1.1" 25 | 26 | 'Description of the App. You can use HTML to format it 27 | App.Description=$"Shows the likes of your Facebook page."$ 28 | 29 | App.Author="Blueforcer" 30 | 31 | App.CoverIcon=584 32 | 33 | 'SetupInstructions. You can use HTML to format it 34 | App.setupDescription= $" 35 | PageID:
Get your facebook PageID from https://findmyfbid.com/

36 | "$ 37 | 38 | 'How many downloadhandlers should be generated 39 | App.Downloads=1 40 | 41 | 'IconIDs from AWTRIXER. 42 | App.Icons=Array As Int(584) 43 | 44 | 'Tickinterval in ms (should be 65 by default) 45 | App.Tick=65 46 | App.InitializeOAuth("https://www.facebook.com/v4.0/dialog/oauth","https://graph.facebook.com/oauth/access_token","413044212451682","1b83bfa010904e1a18267c5845f59efe","public_profile") 47 | 48 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 49 | App.Settings=CreateMap("PageID":"") 50 | 51 | App.MakeSettings 52 | Return "AWTRIX20" 53 | End Sub 54 | 55 | ' ignore 56 | public Sub GetNiceName() As String 57 | Return App.Name 58 | End Sub 59 | 60 | ' ignore 61 | public Sub Run(Tag As String, Params As Map) As Object 62 | Return App.interface(Tag,Params) 63 | End Sub 64 | 65 | 'Called with every update from Awtrix 66 | 'return one URL for each downloadhandler 67 | Sub App_startDownload(jobNr As Int) 68 | Select jobNr 69 | Case 1 70 | App.Download("https://graph.facebook.com/v3.2/?ids="&App.Get("PageID")&"&fields=fan_count&access_token="&App.Token) 71 | End Select 72 | End Sub 73 | 74 | 'process the response from each download handler 75 | 'if youre working with JSONs you can use this online parser 76 | 'to generate the code automaticly 77 | 'https://json.blueforcer.de/ 78 | Sub App_evalJobResponse(Resp As JobResponse) 79 | Try 80 | If Resp.success Then 81 | Select Resp.jobNr 82 | Case 1 83 | Try 84 | Dim parser As JSONParser 85 | parser.Initialize(Resp.ResponseString) 86 | Dim root As Map = parser.NextObject 87 | Dim api As Map = root.Get(App.get("PageID")) 88 | likes = api.Get("fan_count") 89 | Catch 90 | Log("Error in: "& App.Name & CRLF & LastException) 91 | Log("API response: "& CRLF & Resp.ResponseString) 92 | End Try 93 | End Select 94 | End If 95 | Catch 96 | Log("Error in: "& App.Name & CRLF & LastException) 97 | Log("API response: " & CRLF & Resp.ResponseString) 98 | End Try 99 | End Sub 100 | 101 | 'Generates the frame to be displayed. 102 | 'this function is called every tick 103 | Sub App_genFrame 104 | App.genText(likes,True,1,Null,True) 105 | App.drawBMP(0,0,App.getIcon(584),8,8) 106 | End Sub -------------------------------------------------------------------------------- /RocketLaunch/RocketLaunch.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim RocketName As String 13 | Dim TimeString As String 14 | End Sub 15 | 16 | ' ignore 17 | public Sub GetNiceName() As String 18 | Return App.Name 19 | End Sub 20 | 21 | ' ignore 22 | public Sub Run(Tag As String, Params As Map) As Object 23 | Return App.interface(Tag,Params) 24 | End Sub 25 | 26 | ' Config your App 27 | Public Sub Initialize() As String 28 | 29 | App.Initialize(Me,"App") 30 | 31 | 'App name (must be unique, avoid spaces) 32 | App.Name="RocketLaunch" 33 | 34 | 'Version of the App 35 | App.Version="1.0" 36 | 37 | 'Description of the App. You can use HTML to format it 38 | App.Description="Show next rocket launch" 39 | 40 | App.Author="Blueforcer" 41 | 42 | App.CoverIcon=671 43 | 44 | 'How many downloadhandlers should be generated 45 | App.downloads=1 46 | 47 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 48 | App.Icons=Array As Int(671) 49 | 50 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 51 | App.Tick=65 52 | 53 | 'If set to true AWTRIX will wait for the "finish" command before switch to the next app. 54 | App.Lock=True 55 | 56 | App.MakeSettings 57 | Return "AWTRIX20" 58 | End Sub 59 | 60 | 'Called with every update from Awtrix 61 | 'return one URL for each downloadhandler 62 | Sub App_startDownload(jobNr As Int) 63 | Select jobNr 64 | Case 1 65 | App.Download("https://launchlibrary.net/1.4/launch/next/1") 66 | End Select 67 | End Sub 68 | 69 | 'process the response from each download handler 70 | 'if youre working with JSONs you can use this online parser 71 | 'to generate the code automaticly 72 | 'https://json.blueforcer.de/ 73 | Sub App_evalJobResponse(Resp As JobResponse) 74 | Try 75 | If Resp.success Then 76 | Select Resp.jobNr 77 | Case 1 78 | Dim parser As JSONParser 79 | parser.Initialize(Resp.ResponseString) 80 | Dim root As Map = parser.NextObject 81 | Dim launches As List = root.Get("launches") 82 | For Each collaunches As Map In launches 83 | Dim netstamp As Long = collaunches.Get("netstamp") 84 | 85 | Dim rocket As Map = collaunches.Get("rocket") 86 | RocketName = rocket.Get("name") 87 | Dim p As Period=DateUtils.PeriodBetween(DateTime.Now,netstamp*1000) 88 | TimeString=p.Days & "D " & p.Hours & "H " & p.Minutes & "M "& p.Seconds& "S" 89 | Next 90 | End Select 91 | End If 92 | Catch 93 | Log("Error in: "& App.Name & CRLF & LastException) 94 | Log("API response: " & CRLF & Resp.ResponseString) 95 | End Try 96 | End Sub 97 | 98 | 'With this sub you build your frame. 99 | Sub App_genFrame 100 | App.genText(RocketName& " T-0: " & TimeString,True,1,Null,True) 101 | 102 | If App.scrollposition>9 Then 103 | App.drawBMP(0,0,App.getIcon(671),8,8) 104 | Else 105 | If App.scrollposition>-8 Then 106 | App.drawBMP(App.scrollposition-9,0,App.getIcon(671),8,8) 107 | End If 108 | End If 109 | End Sub -------------------------------------------------------------------------------- /BlogViews/BlogViews.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim followers As Int = 0 13 | Dim iconId As Int = 8 14 | End Sub 15 | 16 | ' ignore 17 | public Sub GetNiceName() As String 18 | Return App.Name 19 | End Sub 20 | 21 | ' ignore 22 | public Sub Run(Tag As String, Params As Map) As Object 23 | Return App.interface(Tag,Params) 24 | End Sub 25 | 26 | ' Config your App 27 | Public Sub Initialize() As String 28 | 29 | App.Initialize(Me,"App") 30 | 31 | 'App name (must be unique, avoid spaces) 32 | App.Name="BlogViews" 33 | 34 | 'Version of the App 35 | App.Version="1.0" 36 | 37 | 'Description of the App. You can use HTML to format it 38 | App.Description=$"Shows your website unique visitor on busuanzi statistical tools"$ 39 | 40 | App.Author="JoyLau" 41 | 42 | App.CoverIcon=iconId 43 | 44 | 'SetupInstructions. You can use HTML to format it 45 | App.setupDescription= $" 46 | Website: Your Website Address
47 | IconID: Icon id
48 | "$ 49 | 50 | 'How many downloadhandlers should be generated 51 | App.Downloads=1 52 | 53 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 54 | App.Icons=Array As Int(iconId) 55 | 56 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling))p:// 57 | App.Tick=65 58 | 59 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 60 | App.settings=CreateMap("Website":"http://blog.joylau.cn","IconID":iconId) 61 | 62 | App.MakeSettings 63 | Return "AWTRIX20" 64 | End Sub 65 | 66 | 'this sub is called right before AWTRIX will display your App 67 | Sub App_Started 68 | 69 | End Sub 70 | 71 | 'Called with every update from Awtrix 72 | 'return one URL for each downloadhandler 73 | Sub App_startDownload(jobNr As Int) 74 | Select jobNr 75 | Case 1 76 | App.Download("http://busuanzi.ibruce.info/busuanzi?jsonpCallback=callback") 77 | App.Header = CreateMap("Referer":App.Get("Website"),"Cookie":"busuanziId=D58737A150864C68B83F962028616CD6") 78 | End Select 79 | End Sub 80 | 81 | 'process the response from each download handler 82 | 'if youre working with JSONs you can use this online parser 83 | 'to generate the code automaticly 84 | 'https://json.blueforcer.de/ 85 | Sub App_evalJobResponse(Resp As JobResponse) 86 | Try 87 | If Resp.success Then 88 | Select Resp.jobNr 89 | Case 1 90 | Dim parser As JSONParser 91 | parser.Initialize(Resp.ResponseString.replace("try{callback(","").replace(");}catch(e){}","")) 92 | Dim root As Map = parser.NextObject 93 | followers = root.Get("site_uv") 94 | End Select 95 | End If 96 | Catch 97 | Log("Error in: "& App.Name & CRLF & LastException) 98 | Log("API response: " & CRLF & Resp.ResponseString) 99 | End Try 100 | End Sub 101 | 102 | 'this sub is called right before AWTRIX will display your App 103 | Sub App_iconRequest 104 | App.Icons=Array As Int(App.Get("IconID")) 105 | End Sub 106 | 107 | 'With this sub you build your frame. 108 | Sub App_genFrame 109 | App.genSimpleFrame(followers,App.Get("IconID"),True,False,Null,True) 110 | End Sub -------------------------------------------------------------------------------- /Crypto/Crypto.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | Private price As String ="0" 10 | End Sub 11 | 12 | ' Config your App 13 | Public Sub Initialize() As String 14 | 15 | App.Initialize(Me,"App") 16 | 17 | 'App name (must be unique, avoid spaces) 18 | App.Name="Crypto" 19 | 20 | 'Version of the App 21 | App.Version="1.0" 22 | 23 | 'Description of the App. You can use HTML to format it 24 | App.Description=$" 25 | Shows prices for any cryptocurrency. Set your desired Coin and your currency
26 | Powered by cryptonator.com 27 | "$ 28 | 29 | App.Author="Blueforcer" 30 | 31 | App.CoverIcon=240 32 | 33 | 'SetupInstructions. You can use HTML to format it 34 | App.setupDescription= $" 35 | Coin: Base currency code e.g. (btc, xrp ...).

36 | Currency: Target currency code e.g. (eur, usd ...).
37 | IconID: Choose your desired IconID from AWTRIXER.
38 | "$ 39 | 40 | 'How many downloadhandlers should be generated 41 | App.Downloads=1 42 | 43 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 44 | App.Icons=Array As Int(240) 45 | 46 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 47 | App.Tick=65 48 | 49 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 50 | App.Settings=CreateMap("Coin":"","Currency":"","IconID":240) 51 | 52 | App.MakeSettings 53 | Return "AWTRIX20" 54 | End Sub 55 | 56 | ' ignore 57 | public Sub GetNiceName() As String 58 | Return App.Name 59 | End Sub 60 | 61 | ' ignore 62 | public Sub Run(Tag As String, Params As Map) As Object 63 | Return App.interface(Tag,Params) 64 | End Sub 65 | 66 | 'this sub is called right before AWTRIX will display your App 67 | Sub App_iconRequest 68 | App.Icons=Array As Int(App.get("IconID")) 69 | End Sub 70 | 71 | 'Called with every update from Awtrix 72 | 'return one URL for each downloadhandler 73 | Sub App_startDownload(jobNr As Int) 74 | Select jobNr 75 | Case 1 76 | App.Download("https://api.cryptonator.com/api/ticker/"&App.Get("Coin")&"-"&App.Get("Currency")) 77 | End Select 78 | End Sub 79 | 80 | 'process the response from each download handler 81 | 'if youre working with JSONs you can use this online parser 82 | 'to generate the code automaticly 83 | 'https://json.blueforcer.de/ 84 | Sub App_evalJobResponse(Resp As JobResponse) 85 | Try 86 | If Resp.success Then 87 | Select Resp.jobNr 88 | Case 1 89 | Dim parser As JSONParser 90 | parser.Initialize(Resp.ResponseString) 91 | Dim root As Map = parser.NextObject 92 | Dim ticker As Map = root.Get("ticker") 93 | Dim pric As Double = ticker.Get("price") 94 | If pric < 100 Then 95 | price=NumberFormat2(pric,1,2,0,False) 96 | Else 97 | price=NumberFormat2(pric,1,0,0,False) 98 | End If 99 | End Select 100 | End If 101 | Catch 102 | Log("Error in: "& App.Name & CRLF & LastException) 103 | Log("API response: " & CRLF & Resp.ResponseString) 104 | End Try 105 | End Sub 106 | 107 | Sub App_genFrame 108 | App.genText(price,True,1,Null,True) 109 | App.drawBMP(0,0,App.getIcon(App.get("IconID")),8,8) 110 | End Sub -------------------------------------------------------------------------------- /NeteaseMusic/NeteaseMusic.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim scroll As Int 13 | Dim fans As String ="0" 14 | Dim nums As String ="0" 15 | End Sub 16 | 17 | ' ignore 18 | public Sub GetNiceName() As String 19 | Return App.Name 20 | End Sub 21 | 22 | ' ignore 23 | public Sub Run(Tag As String, Params As Map) As Object 24 | Return App.interface(Tag,Params) 25 | End Sub 26 | 27 | ' Config your App 28 | Public Sub Initialize() As String 29 | 30 | App.Initialize(Me,"App") 31 | 32 | 'App name (must be unique, avoid spaces) 33 | App.name="NeteaseMusic" 34 | 35 | 'Version of the App 36 | App.version="1.0" 37 | 38 | 'Description of the App. You can use HTML to format it 39 | App.description="Shows your netease music fans and total listened music number" 40 | 41 | App.author="UniqueDing" 42 | 43 | App.coverIcon = 1296 44 | 45 | 'How many downloadhandlers should be generated 46 | App.Downloads=1 47 | 48 | 'SetupInstructions. You can use HTML to format it 49 | App.setupDescription= $" 50 | MID: 51 | 57 | "$ 58 | 59 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 60 | App.icons=Array As Int(1295,1296) 61 | 62 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 63 | App.Settings=CreateMap("MID":"") 64 | 65 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 66 | App.tick=65 67 | 68 | App.MakeSettings 69 | Return "AWTRIX20" 70 | End Sub 71 | 72 | Sub App_Started 73 | scroll=1 74 | End Sub 75 | 76 | 'Called with every update from Awtrix 77 | 'return one URL for each downloadhandler 78 | Sub App_startDownload(jobNr As Int) 79 | Select jobNr 80 | Case 1 81 | App.Download("http://awtrix.uniqueding.cn/neteasemusic/"&App.Get("MID")) 82 | End Select 83 | 84 | End Sub 85 | 86 | Sub App_evalJobResponse(Resp As JobResponse) 87 | Try 88 | If Resp.success Then 89 | Select Resp.jobNr 90 | Case 1 91 | Dim parser As JSONParser 92 | parser.Initialize(Resp.ResponseString) 93 | Dim root As Map = parser.NextObject 94 | fans = root.Get("fans") 95 | nums = root.Get("music_num") 96 | End Select 97 | End If 98 | Catch 99 | Log("Error in: "& App.Name & CRLF & LastException) 100 | Log("API response: " & CRLF & Resp.ResponseString) 101 | End Try 102 | End Sub 103 | 104 | 'With this sub you build your frame. 105 | Sub App_genFrame 106 | If App.startedAt 30 | powered by Tianqiapi.com 31 | "$ 32 | 33 | App.author="Lemon" 34 | 35 | 'SetupInstructions. You can use HTML to format it 36 | App.setupDescription= $" 37 | 写城市名就完事咯嗷。
38 | "$ 39 | 40 | App.coverIcon=473 41 | 42 | 'How many downloadhandlers should be generated 43 | App.Downloads=1 44 | 45 | 'IconIDs from AWTRIXER. 46 | App.Icons=Array(487) 47 | 48 | 'Tickinterval in ms (should be 65 by default) 49 | App.tick=65 50 | 51 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 52 | App.Settings=CreateMap("CityName":"广州") 53 | 54 | App.MakeSettings 55 | Return "AWTRIX20" 56 | End Sub 57 | 58 | ' ignore 59 | public Sub GetNiceName() As String 60 | Return App.name 61 | End Sub 62 | 63 | ' ignore 64 | public Sub Run(Tag As String, Params As Map) As Object 65 | Return App.interface(Tag,Params) 66 | End Sub 67 | 68 | Sub App_iconRequest 69 | App.Icons=Array As Int(iconID) 70 | End Sub 71 | 72 | 'Called with every update from Awtrix 73 | 'return one URL for each downloadhandler 74 | Sub App_startDownload(jobNr As Int) 75 | Select jobNr 76 | Case 1 77 | App.Download("https://www.tianqiapi.com/api/?city="&App.get("CityName")) 78 | End Select 79 | End Sub 80 | 81 | 'process the response from each download handler 82 | 'if youre working with JSONs you can use this online parser 83 | 'to generate the code automaticly 84 | 'https://json.blueforcer.de/ 85 | Sub App_evalJobResponse(Resp As JobResponse) 86 | Try 87 | If Resp.success Then 88 | Select Resp.jobNr 89 | Case 1 90 | Dim parser As JSONParser 91 | parser.Initialize(Resp.ResponseString) 92 | Dim root As Map = parser.NextObject 93 | Dim MainMap As List = root.Get("data") 94 | Dim t0 As Map = MainMap.Get("0") 95 | Dim t1 As String = t0.Get("tem") 96 | temp = t1 & "°C" 97 | 98 | Dim colweather As String = t0.Get("wea_img") 99 | iconID=getIconID(colweather) 100 | End Select 101 | End If 102 | Catch 103 | Log("Error in: "& App.Name & CRLF & LastException) 104 | Log("API response: " & CRLF & Resp.ResponseString) 105 | End Try 106 | End Sub 107 | 108 | 109 | Sub App_genFrame 110 | App.genText(temp,True,1,Null,False) 111 | App.drawBMP(0,0,App.getIcon(iconID),8,8) 112 | End Sub 113 | 114 | Sub getIconID (ico As String)As Int 115 | Select ico 116 | 'Day 117 | Case "qing" 118 | Return 349 'sunny 119 | Case "yun" 120 | Return 486 'cloudy 121 | Case "lei" 122 | Return 346 'rainy 123 | Case "yu" 124 | Return 346 'rainy 125 | Case Else 126 | Log("Error from weatherApp:") 127 | Log("Icon " & ico & " not found!") 128 | Return 487 129 | End Select 130 | 131 | 132 | End Sub 133 | -------------------------------------------------------------------------------- /News/News.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | Dim sb As StringBuilder 11 | End Sub 12 | 13 | Public Sub Initialize() As String 14 | 15 | App.Initialize(Me,"App") 16 | 17 | 'change plugin name (must be unique, avoid spaces) 18 | App.Name="News" 19 | 20 | 'Version of the App 21 | App.Version="1.2" 22 | 23 | 'Description of the App. You can use HTML to format it 24 | App.Description=$" 25 | Provides live top and breaking headlines for your country.
26 | Powered by NewsAPI.org 27 | "$ 28 | 29 | 'SetupInstructions. You can use HTML to format it 30 | App.setupDescription= $" 31 | APIkey: Get your API-Key from https://newsapi.org/

32 | Country: Countrycode e.g "de"

33 | maxNews: maximum number of headlines you want do read.

34 | "$ 35 | 36 | App.Author="Blueforcer" 37 | 38 | App.CoverIcon=585 39 | 40 | 'How many downloadhandlers should be generated 41 | App.Downloads=1 42 | 43 | 'IconIDs from AWTRIXER. 44 | App.Icons=Array As Int(585) 45 | 46 | 'Tickinterval in ms (should be 65 by default) 47 | App.Tick=65 48 | 49 | 'If set to true AWTRIX will wait for the "finish" command before switch to the next app. 50 | App.Lock=True 51 | 52 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 53 | App.Settings=CreateMap("Country":"de","APIkey":"","maxNews":2) 54 | 55 | App.MakeSettings 56 | Return "AWTRIX20" 57 | End Sub 58 | 59 | ' ignore 60 | public Sub GetNiceName() As String 61 | Return App.Name 62 | End Sub 63 | 64 | ' ignore 65 | public Sub Run(Tag As String, Params As Map) As Object 66 | Return App.interface(Tag,Params) 67 | End Sub 68 | 69 | Public Sub AppStarted 70 | 71 | End Sub 72 | 73 | 'Called with every update from Awtrix 74 | 'return one URL for each downloadhandler 75 | Sub App_startDownload(jobNr As Int) 76 | Select jobNr 77 | Case 1 78 | App.Download("https://newsapi.org/v2/top-headlines?country="&App.get("Country")&"&pageSize="&App.get("maxNews")&"&apiKey="&App.get("APIkey")) 79 | End Select 80 | End Sub 81 | 82 | 'process the response from each download handler 83 | 'if youre working with JSONs you can use this online parser 84 | 'to generate the code automaticly 85 | 'https://json.blueforcer.de/ 86 | Sub App_evalJobResponse(Resp As JobResponse) 87 | Try 88 | If Resp.success Then 89 | Select Resp.jobNr 90 | Case 1 91 | sb.Initialize 92 | Dim parser As JSONParser 93 | parser.Initialize(Resp.ResponseString) 94 | Dim root As Map = parser.NextObject 95 | Dim articles As List = root.Get("articles") 96 | For Each colarticles As Map In articles 97 | Dim title As String = colarticles.Get("title") 98 | sb.Append(title) 99 | sb.Append(" ") 100 | Next 101 | End Select 102 | End If 103 | Catch 104 | Log("Error in: "& App.Name & CRLF & LastException) 105 | Log("API response: " & CRLF & Resp.ResponseString) 106 | End Try 107 | End Sub 108 | 109 | Sub App_genFrame 110 | App.genText(sb.ToString,True,1,Null,True) 111 | 112 | If App.scrollposition>9 Then 113 | App.drawBMP(0,0,App.getIcon(585),8,8) 114 | Else 115 | If App.scrollposition>-8 Then 116 | App.drawBMP(App.scrollposition-9,0,App.getIcon(585),8,8) 117 | End If 118 | End If 119 | End Sub 120 | -------------------------------------------------------------------------------- /Countdown/Countdown.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=7.31 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | End Sub 10 | 11 | ' Config your App 12 | Public Sub Initialize() As String 13 | 14 | App.Initialize(Me,"App") 15 | 16 | 'App name (must be unique, avoid spaces) 17 | App.Name="Countdown" 18 | 19 | 'Version of the App 20 | App.Version="1.1" 21 | 22 | 'Description of the App. You can use HTML to format it 23 | App.Description=$"Shows the remaining days from now to a target date"$ 24 | 25 | App.Author="0o.y.o0" 26 | 27 | App.CoverIcon=68 28 | 29 | 'SetupInstructions. You can use HTML to format it 30 | App.setupDescription= $" 31 | Date: Target date (Format: dd.mm.yyyy).
32 | IconID: Choose your desired IconID from AWTRIXER.
33 | Identifier: Enter your desired translation for "days,day" Example: Tage,Tag.
34 | "$ 35 | 36 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 37 | App.Icons=Array As Int(62) 38 | 39 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 40 | App.Tick=65 41 | 42 | 43 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 44 | App.Settings=CreateMap("Date":"01.01.2000", "Identifier":"Days,Day", "IconID":62) 45 | 46 | App.MakeSettings 47 | Return "AWTRIX20" 48 | End Sub 49 | 50 | ' ignore 51 | public Sub GetNiceName() As String 52 | Return App.Name 53 | End Sub 54 | 55 | Sub App_Started 56 | 57 | End Sub 58 | 59 | 60 | ' ignore 61 | public Sub Run(Tag As String, Params As Map) As Object 62 | Return App.interface(Tag,Params) 63 | End Sub 64 | 65 | 'this sub is called right before AWTRIX will display your App 66 | Sub App_iconRequest 67 | App.Icons=Array As Int(App.Get("IconID")) 68 | End Sub 69 | 70 | 'is called every tick, generates the commandlist (drawingroutines) and send it to awtrix 71 | Sub App_genFrame 72 | App.genText(CountedDays,True,1,Null,True) 73 | App.drawBMP(0,0,App.getIcon(App.Get("IconID")),8,8) 74 | End Sub 75 | 76 | 77 | Sub CountedDays As String 78 | Dim AmountOfDays As String 79 | Dim Diff As Int 80 | Dim PerDiff As Period 81 | 82 | '----------------separate identifiers ------------------------ 83 | Dim separatedIdentifier() As String 84 | separatedIdentifier=Regex.split(",",App.Get("Identifier")) 85 | 86 | '----------------calculate difference ------------------------ 87 | DateTime.DateFormat = "dd.MM.yyyy" 88 | PerDiff = DateUtils.PeriodBetweenInDays(DateTime.now, DateTime.DateParse(App.Get("Date"))) 89 | Diff= PerDiff.Days 90 | 91 | '----------------process result ------------------------ 92 | If Diff >=0 Then AmountOfDays = Diff +1 'we have to add one day since the current day is missing 93 | 94 | If Diff < 0 Then AmountOfDays = "0" 'we set the amount of days to zero here too 95 | 96 | If App.Get("Date") = DateTime.Date(DateTime.now) Then AmountOfDays = Diff 'we set the amount of days to zero because the target date is today 97 | 98 | '----------------select identifier ------------------------ 99 | Dim IdentifierId As Int 100 | 101 | If AmountOfDays > 1 Then IdentifierId = 0 102 | If AmountOfDays = 1 Then IdentifierId = 1 103 | If AmountOfDays = 0 Then IdentifierId = 0 104 | AmountOfDays = AmountOfDays & " " & separatedIdentifier(IdentifierId) 105 | 106 | Return AmountOfDays 107 | End Sub -------------------------------------------------------------------------------- /Wetterdienst/Wetterdienst.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | Dim sb As StringBuilder 10 | End Sub 11 | 12 | 13 | '' Config your App 14 | Public Sub Initialize() As String 15 | sb.Initialize 16 | App.Initialize(Me,"App") 17 | 18 | 'App name (must be unique, avoid spaces) 19 | App.Name="Wetterdienst" 20 | 21 | 'Version of the App 22 | App.Version="1.1" 23 | 24 | 'Description of the App. You can use HTML to format it 25 | App.Description=$" 26 | Displays weather-warnings of Deutscher Wetterdienst
27 | Only appears if there is at least one warning 28 | "$ 29 | 30 | App.Author="Blueforcer" 31 | 32 | App.CoverIcon=521 33 | 34 | 'SetupInstructions. You can use HTML to format it 35 | App.setupDescription= $" 36 | CellID: Warncell-ID von https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_warncellids_csv.csv/

37 | "$ 38 | 39 | 'How many downloadhandlers should be generated 40 | App.Downloads=1 41 | 42 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 43 | App.Icons=Array As Int(521) 44 | 45 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 46 | App.Tick=65 47 | 48 | App.lock=True 49 | 50 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 51 | App.settings=CreateMap("CellID":"") 52 | 53 | App.MakeSettings 54 | Return "AWTRIX20" 55 | End Sub 56 | 57 | ' ignore 58 | public Sub GetNiceName() As String 59 | Return App.name 60 | End Sub 61 | 62 | ' ignore 63 | public Sub Run(Tag As String, Params As Map) As Object 64 | Return App.interface(Tag,Params) 65 | End Sub 66 | 67 | 68 | 'Called with every update from Awtrix 69 | 'return one URL for each downloadhandler 70 | Sub App_startDownload(jobNr As Int) 71 | Select jobNr 72 | Case 1 73 | App.Download("https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json") 74 | End Select 75 | End Sub 76 | 77 | 'process the response from each download handler 78 | 'if youre working with JSONs you can use this online parser 79 | 'to generate the code automaticly 80 | 'https://json.blueforcer.de/ 81 | Sub App_evalJobResponse(Resp As JobResponse) 82 | Try 83 | If Resp.success Then 84 | Select Resp.jobNr 85 | Case 1 86 | sb.Initialize 87 | Dim parser As JSONParser 88 | parser.Initialize(Resp.ResponseString.Replace(");","").Replace("warnWetter.loadWarnings(","")) 89 | Dim root As Map = parser.NextObject 90 | Dim warnings As Map = root.Get("warnings") 91 | If warnings.ContainsKey(App.get("CellID")) Then 92 | App.ShouldShow=True 93 | Dim weather As List = warnings.Get(App.get("CellID")) 94 | Dim count As Int = 1 95 | For Each col As Map In weather 96 | sb.Append(count & ". " & col.Get("headline") & " ") 97 | count=count+1 98 | Next 99 | 100 | Else 101 | App.ShouldShow=False 102 | End If 103 | End Select 104 | End If 105 | Catch 106 | Log("Error in: "& App.Name & CRLF & LastException) 107 | Log("API response: " & CRLF & Resp.ResponseString) 108 | End Try 109 | End Sub 110 | 111 | Sub App_genFrame 112 | App.genText(sb.ToString,True,1,Null,True) 113 | If App.scrollposition>9 Then 114 | App.drawBMP(0,0,App.getIcon(521),8,8) 115 | Else 116 | If App.scrollposition>-8 Then 117 | App.drawBMP(App.scrollposition-9,0,App.getIcon(521),8,8) 118 | End If 119 | End If 120 | End Sub 121 | -------------------------------------------------------------------------------- /Youtube/Youtube.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | Dim subs As String ="0" 10 | End Sub 11 | 12 | ' Config your App 13 | Public Sub Initialize() As String 14 | 15 | App.Initialize(Me,"App") 16 | 17 | 'App name (must be unique, avoid spaces) 18 | App.Name="Youtube" 19 | 20 | 'Version of the App 21 | App.Version="1.1" 22 | 23 | 'Description of the App. You can use HTML to format it 24 | App.Description="Shows your Youtube subscriber count." 25 | 26 | 'SetupInstructions. You can use HTML to format it 27 | App.setupDescription= $" 28 | APIKey: 29 |
    30 |
  • Go to https://console.developers.google.com/apis/library
  • 31 |
  • Log in with your Google account.
  • 32 |
  • Next to the logo click on 'Project' and 'Create project'. Name it whatever you want and click on 'Create'.
    33 |
  • Wait until the project is created, the page will switch to it by itself, it will take a couple of seconds up to a minute. Once it's done it will be selected next to the logo.
  • 34 |
  • Once it's created and selected, click on 'Credentials' from the menu on the left.
  • 35 |
  • Click on 'Create Credentials' and choose 'API Key'.
  • 36 |
  • Copy your API KEY


  • 37 |
38 | ChannelID:
Login to YouYube website and select 'My channel'. You will get the ID from the page adress afer /Channel/. e.g. https://www.youtube.com/channel/UCpGLALzRO0uaasWTsm9M99w 39 | "$ 40 | 41 | App.Author="Blueforcer" 42 | 43 | App.CoverIcon=155 44 | 45 | 'How many downloadhandlers should be generated 46 | App.Downloads=1 47 | 48 | 'IconIDs from AWTRIXER. You can add multiple if you want to display them at the same time 49 | App.Icons=Array As Int(155) 50 | 51 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 52 | App.Tick=65 53 | 54 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 55 | App.Settings=CreateMap("APIKey":"","ChannelID":"") 56 | 57 | App.MakeSettings 58 | Return "AWTRIX20" 59 | End Sub 60 | 61 | ' ignore 62 | public Sub GetNiceName() As String 63 | Return App.Name 64 | End Sub 65 | 66 | ' ignore 67 | public Sub Run(Tag As String, Params As Map) As Object 68 | Return App.interface(Tag,Params) 69 | End Sub 70 | 71 | 72 | 'Called with every update from Awtrix 73 | 'return one URL for each downloadhandler 74 | Sub App_startDownload(jobNr As Int) 75 | Select jobNr 76 | Case 1 77 | App.Download("https://content.googleapis.com/youtube/v3/channels?part=statistics&id="&App.get("ChannelID")&"&key="&App.get("APIKey")) 78 | End Select 79 | End Sub 80 | 81 | 'process the response from each download handler 82 | 'if youre working with JSONs you can use this online parser 83 | 'to generate the code automaticly 84 | 'https://json.blueforcer.de/ 85 | Sub App_evalJobResponse(Resp As JobResponse) 86 | Try 87 | If Resp.success Then 88 | Select Resp.jobNr 89 | Case 1 90 | Dim parser As JSONParser 91 | parser.Initialize(Resp.ResponseString) 92 | Dim root As Map = parser.NextObject 93 | Dim items As List = root.Get("items") 94 | For Each colitems As Map In items 95 | Dim statistics As Map = colitems.Get("statistics") 96 | subs = statistics.Get("subscriberCount") 97 | Next 98 | End Select 99 | End If 100 | Catch 101 | Log("Error in: "& App.Name & CRLF & LastException) 102 | Log("API response: " & CRLF & Resp.ResponseString) 103 | End Try 104 | End Sub 105 | 106 | Sub App_genFrame 107 | App.genText(subs.Replace(",",""),True,1,Null,True) 108 | App.drawBMP(0,0,App.getIcon(155),8,8) 109 | End Sub -------------------------------------------------------------------------------- /TikTok/TikTok.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | Dim Followers As String 11 | End Sub 12 | 13 | ' ignore 14 | public Sub GetNiceName() As String 15 | Return App.name 16 | End Sub 17 | 18 | ' ignore 19 | public Sub Run(Tag As String, Params As Map) As Object 20 | Return App.interface(Tag,Params) 21 | End Sub 22 | 23 | ' Config your App 24 | Public Sub Initialize() As String 25 | 26 | 'initialize the AWTRIX class and parse the instance; dont touch this 27 | App.Initialize(Me,"App") 28 | 29 | 'App name (must be unique, no spaces) 30 | App.name = "TikTok" 31 | 32 | 'Version of the App 33 | App.version = "1.1" 34 | 35 | 'Description of the App. You can use HTML to format it 36 | App.description = $" 37 | Shows the number of your TikTok followers. 38 | "$ 39 | 40 | 'The developer if this App 41 | App.author = "Blueforcer" 42 | 43 | 'Icon (ID) to be displayed in the Appstore and MyApps 44 | App.coverIcon = 758 45 | 46 | App.settings=CreateMap("ProfileName":"") 47 | 48 | 'How many downloadhandlers should be generated 49 | App.downloads = 1 50 | 51 | 'IconIDs from AWTRIXER. You can add multiple if you need more 52 | App.icons = Array As Int(758) 53 | 54 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 55 | App.tick = 65 56 | 57 | 'If set to true AWTRIX will wait for the "finish" command before switch to the next app. 58 | App.lock = False 59 | 60 | 'This tolds AWTRIX that this App is an Game. 61 | App.isGame = False 62 | 63 | 'If set to true, AWTRIX will download new data before each start. 64 | App.forceDownload = False 65 | 66 | 'ignore 67 | App.makeSettings 68 | 69 | Return "AWTRIX20" 70 | End Sub 71 | 72 | 'this sub is called right before AWTRIX will display your App 73 | Sub App_Started 74 | 75 | End Sub 76 | 77 | 'this sub is called if AWTRIX switch to thee next app and pause this one 78 | Sub App_Exited 79 | 80 | End Sub 81 | 82 | 'this sub is called right before AWTRIX will display your App. 83 | 'if you need to another Icon you can set your Iconlist here again. 84 | Sub App_iconRequest 85 | 'App.Icons = Array As Int(4) 86 | End Sub 87 | 88 | 'If the user change any Settings in the webinterface, this sub will be called 89 | Sub App_settingsChanged 90 | 91 | End Sub 92 | 93 | 'if you create an Game, use this sub to get the button presses from the Weeebinterface or Controller 94 | 'button defines the buttonID of thee controller, dir is true if it is pressed 95 | Sub App_controllerButton(button As Int,dir As Boolean) 96 | 97 | End Sub 98 | 99 | 'if you create an Game, use this sub to get the Analog Values of thee connected Controller 100 | Sub App_controllerAxis(axis As Int, dir As Float) 101 | 102 | End Sub 103 | 104 | ' 105 | 106 | 'Called with every update from Awtrix 107 | 'return one URL for each downloadhandler 108 | Sub App_startDownload(jobNr As Int) 109 | Select jobNr 110 | Case 1 111 | App.Download($"https://www.tiktok.com/node/share/user/@${App.get("ProfileName")}"$) 112 | End Select 113 | 114 | End Sub 115 | 116 | 'process the response from each download handler 117 | 'if youre working with JSONs you can use this online parser 118 | 'to generate the code automaticly 119 | 'https://json.blueforcer.de/ 120 | Sub App_evalJobResponse(Resp As JobResponse) 121 | Try 122 | If Resp.success Then 123 | Select Resp.jobNr 124 | Case 1 125 | Dim Reader As JSONParser 126 | Reader.Initialize(Resp.ResponseString) 127 | Dim root As Map = Reader.NextObject 128 | Dim userInfo As Map = root.Get("userInfo") 129 | Dim stats As Map = userInfo.Get("stats") 130 | Followers = stats.Get("followerCount") 131 | End Select 132 | Else 133 | App.shouldShow=False 134 | End If 135 | Catch 136 | App.throwError(LastException) 137 | End Try 138 | End Sub 139 | 140 | 141 | 'With this sub you build your frame wtih every Tick. 142 | Sub App_genFrame 143 | App.genText(Followers,True,1,Null,False) 144 | App.drawBMP(0,0,App.getIcon(758),8,8) 145 | End Sub -------------------------------------------------------------------------------- /Dark/Dark.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | End Sub 13 | 14 | ' ignore 15 | public Sub GetNiceName() As String 16 | Return App.name 17 | End Sub 18 | 19 | ' ignore 20 | public Sub Run(Tag As String, Params As Map) As Object 21 | Return App.interface(Tag,Params) 22 | End Sub 23 | 24 | ' Config your App 25 | Public Sub Initialize() As String 26 | 27 | 'initialize the AWTRIX class and parse the instance; dont touch this 28 | App.Initialize(Me,"App") 29 | 30 | 'App name (must be unique, no spaces) 31 | App.name = "Dark" 32 | 33 | 'Version of the App 34 | App.version = "1.0" 35 | 36 | 'Description of the App. You can use HTML to format it 37 | App.description = $" 38 | Are you going to sleep? Switch off lights on your AWTRIX, keeping its functionality. 39 | "$ 40 | 41 | 'The developer if this App 42 | App.author = "Tamao" 43 | 44 | 'Icon (ID) to be displayed in the Appstore and MyApps 45 | App.coverIcon = 1313 46 | 47 | 'define some tags to simplify the search in the Appstore 48 | App.tags = Array As String("Dark") 49 | 50 | 'How many downloadhandlers should be generated 51 | App.downloads = 0 52 | 53 | 'IconIDs from AWTRIXER. You can add multiple if you need more 54 | App.icons = Array As Int(1313) 55 | 56 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 57 | App.tick = 5000 58 | 59 | 'If set to true AWTRIX will wait for the "finish" command before switch to the next app. 60 | App.lock = False 61 | 62 | 'This tolds AWTRIX that this App is an Game. 63 | App.isGame = False 64 | 65 | 'If set to true, AWTRIX will download new data before each start. 66 | App.forceDownload = False 67 | 68 | 'ignore 69 | App.makeSettings 70 | 71 | Return "AWTRIX20" 72 | End Sub 73 | 74 | 'this sub is called right before AWTRIX will display your App 75 | Sub App_Started 76 | 77 | End Sub 78 | 79 | 'this sub is called if AWTRIX switch to thee next app and pause this one 80 | Sub App_Exited 81 | 82 | End Sub 83 | 84 | 'This sub is called right before AWTRIX will display your App. 85 | 'If you need to another Icon you can set your Iconlist here again. 86 | Sub App_iconRequest 87 | 'App.Icons = Array As Int(4) 88 | End Sub 89 | 90 | 'If the user change any Settings in the webinterface, this sub will be called 91 | Sub App_settingsChanged 92 | 93 | End Sub 94 | 95 | 'If you create an Game, use this sub to get the button presses from the Weeebinterface or Controller 96 | 'button defines the buttonID of thee controller, dir is true if it is pressed 97 | Sub App_controllerButton(button As Int,dir As Boolean) 98 | 99 | End Sub 100 | 101 | 'If you create an Game, use this sub to get the Analog Values of thee connected Controller 102 | Sub App_controllerAxis(axis As Int, dir As Float) 103 | 104 | End Sub 105 | 106 | 'This sub is called when the user presses the middle touchbutton while the app is running 107 | Sub App_buttonPush 108 | 109 | End Sub 110 | 111 | 'It possible to create your own setupscreen in HTML. 112 | 'This is a very dirty workaround, but its works:) 113 | 'Every input must contains an ID with the corresponding settingskey in lowercase 114 | Sub App_CustomSetupScreen As String 115 | Return "" 116 | End Sub 117 | 118 | 'Called with every update from Awtrix 119 | 'return one URL for each downloadhandler 120 | Sub App_startDownload(jobNr As Int) 121 | Select jobNr 122 | Case 1 123 | 124 | End Select 125 | End Sub 126 | 127 | 'process the response from each download handler 128 | 'if youre working with JSONs you can use this online parser 129 | 'to generate the code automaticly 130 | 'https://json.blueforcer.de/ 131 | Sub App_evalJobResponse(Resp As JobResponse) 132 | Try 133 | If Resp.success Then 134 | Select Resp.jobNr 135 | Case 1 136 | 137 | End Select 138 | End If 139 | Catch 140 | App.throwError(LastException) 141 | End Try 142 | End Sub 143 | 144 | 'With this sub you build your frame wtih eveery Tick. 145 | Sub App_genFrame 146 | App.fill(Array As Int(0,0,0)) 147 | End Sub -------------------------------------------------------------------------------- /Animations/Animations.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | Dim animationlist As List 11 | Dim nextAnimation As String 12 | End Sub 13 | 14 | ' ignore 15 | public Sub GetNiceName() As String 16 | Return App.Name 17 | End Sub 18 | 19 | ' ignore 20 | public Sub Run(Tag As String, Params As Map) As Object 21 | Return App.interface(Tag,Params) 22 | End Sub 23 | 24 | ' Config your App 25 | Public Sub Initialize() As String 26 | animationlist.Initialize 27 | App.Initialize(Me,"App") 28 | 29 | 'App name (must be unique, avoid spaces) 30 | App.Name ="Animations" 31 | 32 | 'Version of the App 33 | App.Version ="1.6" 34 | 35 | 'Description of the App. You can use HTML to format it 36 | App.Description = "Shows a Animations from the AWTRIX Cloud." 37 | 38 | 39 | App.CoverIcon = 620 40 | 41 | App.downloads=1 42 | 43 | 44 | App.Author = "Blueforcer" 45 | 46 | App.MakeSettings 47 | Return "AWTRIX20" 48 | End Sub 49 | 50 | Sub App_Started 51 | Try 52 | App.shouldShow=True 53 | If animationlist.Size>0 Then 54 | 55 | Dim oneActive As Boolean 56 | For Each AppName As String In animationlist 57 | If App.settings.Get(AppName) Then 58 | oneActive=True 59 | End If 60 | Next 61 | 62 | If oneActive = True Then 63 | Dim isEnable As Boolean =False 64 | nextAnimation="random" 65 | Do Until isEnable 66 | Dim nextApp As String = animationlist.Get(Rnd(0,animationlist.Size)) 67 | If isactive(nextApp) Then 68 | isEnable = True 69 | nextAnimation=nextApp 70 | End If 71 | Loop 72 | Else 73 | nextAnimation="random" 74 | End If 75 | Else 76 | nextAnimation="random" 77 | End If 78 | Catch 79 | nextAnimation="random" 80 | End Try 81 | 82 | End Sub 83 | 84 | 85 | Sub isactive(name As String)As Boolean 86 | 87 | If App.Settings.ContainsKey(name) Then 88 | If App.settings.Get(name) = True Then 89 | 90 | Return True 91 | Else 92 | Return False 93 | End If 94 | Else 95 | Return False 96 | End If 97 | 98 | End Sub 99 | 100 | 'Called with every update from Awtrix 101 | 'return one URL for each downloadhandler 102 | Sub App_startDownload(jobNr As Int) 103 | Select jobNr 104 | Case 1 105 | App.PostString("https://awtrix.blueforcer.de/animation", $"{"reqType":"getAnimationList","filter":""}"$) 106 | App.SetContentType("application/json") 107 | End Select 108 | End Sub 109 | 110 | 111 | 'process the response from each download handler 112 | 'if youre working with JSONs you can use this online parser 113 | 'to generate the code automaticly 114 | 'https://json.blueforcer.de/ 115 | Sub App_evalJobResponse(Resp As JobResponse) 116 | Try 117 | If Resp.success Then 118 | Select Resp.jobNr 119 | Case 1 120 | animationlist.Clear 121 | Dim parser As JSONParser 122 | parser.Initialize(Resp.ResponseString) 123 | Dim root As Map = parser.NextObject 124 | For Each name As String In root.Values 125 | If Not(App.settings.ContainsKey(name)) Then 126 | App.settings.Put(name,True) 127 | End If 128 | animationlist.Add(name) 129 | Next 130 | 131 | For Counter = App.settings.Size-1 To 0 Step -1 132 | Dim SettingsKey As String =App.settings.GetKeyAt(Counter) 133 | If Not(SettingsKey="UpdateInterval" Or SettingsKey="StartTime" Or SettingsKey="EndTime" Or SettingsKey="DisplayTime" Or SettingsKey="Enabled") Then 134 | If animationlist.IndexOf(SettingsKey)=-1 Then 135 | App.settings.Remove(SettingsKey) 136 | End If 137 | End If 138 | Next 139 | 140 | File.WriteList(File.Combine(File.DirApp,"Apps"),"Animationlist.txt",animationlist) 141 | App.makeSettings 142 | End Select 143 | End If 144 | Catch 145 | Log("Error in: "& App.Name & CRLF & LastException) 146 | Log("API response: " & CRLF & Resp.ResponseString) 147 | End Try 148 | End Sub 149 | 150 | 151 | 'With this sub you build your frame. 152 | Sub App_genFrame 153 | 154 | App.customCommand(CreateMap("type":"animation","ID":nextAnimation)) 155 | End Sub -------------------------------------------------------------------------------- /Octoprint/Octoprint.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | Dim hour As String 10 | Private completion As String 11 | Private printTimeLeft As String ="0" 12 | Dim scroll As Int 13 | Dim isOnline As Boolean 14 | Dim minute As String 15 | Dim day As String 16 | End Sub 17 | 18 | ' ignore 19 | Public Sub Initialize() As String 20 | 21 | App.Initialize(Me,"App") 22 | 23 | 'change plugin name (must be unique, avoid spaces) 24 | App.Name="Octoprint" 25 | 26 | 'Version of the App 27 | App.Version="1.3" 28 | 29 | 'Description of the App. You can use HTML to format it 30 | App.Description=$" 31 | Shows the percentage of progress and remaining time of OctoPrint printing. 32 | "$ 33 | 34 | App.Author="Blueforcer" 35 | 36 | App.CoverIcon=74 37 | 38 | 'SetupInstructions. You can use HTML to format it 39 | App.setupDescription= $" 40 | IP:IP of your Octoprint instance
41 | apiKey:Your Octoprint API Key
42 | "$ 43 | 44 | 'How many downloadhandlers should be generated 45 | App.Downloads=1 46 | 47 | 'IconIDs from AWTRIXER. 48 | App.Icons=Array As Int(1014) 49 | 50 | 'Tickinterval in ms (should be 65 by default) 51 | App.Tick=65 52 | 53 | App.forceDownload=True 54 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 55 | App.Settings=CreateMap("IP":"","apiKey":"") 56 | 57 | App.MakeSettings 58 | Return "AWTRIX20" 59 | End Sub 60 | 61 | ' ignore 62 | public Sub GetNiceName() As String 63 | Return App.Name 64 | End Sub 65 | 66 | ' ignore 67 | public Sub Run(Tag As String, Params As Map) As Object 68 | Return App.interface(Tag,Params) 69 | End Sub 70 | 71 | Sub App_Started 72 | scroll=1 73 | App.ShouldShow=isOnline 74 | End Sub 75 | 76 | 'Called with every update from Awtrix 77 | 'return one URL for each downloadhandler 78 | Sub App_startDownload(jobNr As Int) 79 | Select jobNr 80 | Case 1 81 | App.Download("http://"&App.get("IP")&"/api/job?apikey="&App.get("apiKey")) 82 | End Select 83 | End Sub 84 | 85 | 'process the response from each download handler 86 | 'if youre working with JSONs you can use this online parser 87 | 'to generate the code automaticly 88 | 'https://json.blueforcer.de/ 89 | Sub App_evalJobResponse(Resp As JobResponse) 90 | If Resp.Success=False Then 91 | isOnline = False 92 | Return 93 | End If 94 | Try 95 | If Resp.success Then 96 | Select Resp.jobNr 97 | Case 1 98 | isOnline = True 99 | Dim parser As JSONParser 100 | parser.Initialize(Resp.ResponseString) 101 | Dim root As Map = parser.NextObject 102 | Dim ticker As Map = root.Get("progress") 103 | completion = ticker.Get("completion") 104 | printTimeLeft = ticker.Get("printTimeLeft") 105 | Dim seconds As Long = printTimeLeft * DateTime.TicksPerSecond 'convert seconds to ticks! 106 | hour=NumberFormat( Floor(seconds/DateTime.TicksPerHour Mod 24),2,0) 107 | minute=NumberFormat( Floor(seconds/DateTime.TicksPerMinute Mod 60),2,0) 108 | day=NumberFormat( Floor(seconds/DateTime.TicksPerDay),2,0) 109 | End Select 110 | End If 111 | Catch 112 | Log("Error in: "& App.Name & CRLF & LastException) 113 | Log("API response: " & CRLF & Resp.ResponseString) 114 | End Try 115 | End Sub 116 | 117 | 118 | 'Generates the frame to be displayed. 119 | 'this function is called every tick 120 | Sub App_genFrame 121 | If isOnline Then 122 | If printTimeLeft == "null" Then 123 | App.genText("wait..",True,1,Null,True) 124 | Else 125 | 126 | 127 | If App.startedAt 0 Then 129 | App.genText(day&":"&hour,True,scroll-8,Null,True) 130 | 131 | Else 132 | App.genText(hour&":"&minute,True,scroll-8,Null,True) 133 | 134 | End If 135 | If scroll<9 Then 136 | scroll=scroll+1 137 | End If 138 | Else 139 | App.genText(Round2(completion,0)&"%",True,scroll,Null,True) 140 | End If 141 | End If 142 | Else 143 | App.genText("zZz",True,1,Null,True) 144 | End If 145 | App.drawBMP(0,0,App.getIcon(1014),8,8) 146 | End Sub -------------------------------------------------------------------------------- /Pong/Pong.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim paddleX As Int = 1 13 | Dim paddleY As Int =7 14 | Dim ballDirectionX As Int =1 15 | Dim ballDirectionY As Int =1 16 | Dim points,score,ballX, ballY, oldBallX, oldBallY,oldPaddleX, oldPaddleY As Int 17 | Dim prevMillis As Long 18 | End Sub 19 | 20 | ' ignore 21 | public Sub GetNiceName() As String 22 | Return App.Name 23 | End Sub 24 | 25 | ' ignore 26 | public Sub Run(Tag As String, Params As Map) As Object 27 | Return App.interface(Tag,Params) 28 | End Sub 29 | 30 | ' Config your App 31 | Public Sub Initialize() As String 32 | 33 | App.Initialize(Me,"App") 34 | 35 | 'App name (must be unique, avoid spaces) 36 | App.Name="Pong" 37 | 38 | 'Version of the App 39 | App.Version="1.0" 40 | 41 | 'Description of the App. You can use HTML to format it 42 | App.Description=$"Play the classic Pong game on your AWTRIX"$ 43 | 44 | App.Author="Blueforcer" 45 | 46 | App.CoverIcon=680 47 | 48 | App.Tags=Array As String("Beta","Games","Interactive") 49 | 50 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 51 | App.Tick=65 52 | 53 | 'If set to true AWTRIX will wait for the "finish" command before switch to the next app. 54 | App.Lock=True 55 | 56 | App.isGame=True 57 | 58 | App.Hidden=True 59 | 60 | App.ShouldShow=False 61 | 62 | App.MakeSettings 63 | Return "AWTRIX20" 64 | End Sub 65 | 66 | Sub App_externalCommand(cmd As Object) 67 | App.ShouldShow=True 68 | paddleX=cmd 69 | End Sub 70 | 71 | Sub App_AppExited 72 | App.ShouldShow=False 73 | End Sub 74 | 75 | 'this sub is called right before AWTRIX will display your App 76 | Sub App_Started 77 | paddleX=1 78 | points=0 79 | oldBallX=0 80 | oldBallY=0 81 | ballDirectionY=1 82 | ballDirectionX=1 83 | ballX = Rnd(3,19) 84 | ballY = 1 85 | End Sub 86 | 87 | 'With this sub you build your frame. 88 | Sub App_genFrame 89 | If paddleX=255 Then 90 | App.finish 91 | App.ShouldShow=False 92 | End If 93 | 94 | App.drawRect(paddleX, paddleY, 4, 1,Array As Int(0,0,255)) 95 | oldPaddleX = paddleX 96 | oldPaddleY = paddleY 97 | 98 | If (DateTime.Now - prevMillis >= 150) Then 99 | prevMillis=DateTime.Now 100 | 101 | If (ballX > 30) Then 102 | ballDirectionX = ballDirectionX-1 103 | End If 104 | 105 | If ballX < 1 Then 106 | ballDirectionX = ballDirectionX+1 107 | End If 108 | 109 | If ballY > 8 Then 110 | ballDirectionY = ballDirectionY-1 111 | End If 112 | 113 | If ballY < 1 Then 114 | ballDirectionY = ballDirectionY+1 115 | End If 116 | 117 | If (inPaddle(ballX, ballY, paddleX, paddleY, 4, 1)) Then 118 | App.drawRect(paddleX, paddleY, 4, 1,Array As Int(255,0,255)) 119 | If(ballX = paddleX And ballY = paddleY) Then 120 | ballDirectionX = ballDirectionX-1 121 | ballDirectionY = ballDirectionY-1 122 | 123 | else if(ballX = paddleX + 3 And ballY = paddleY) Then 124 | ballDirectionX = ballDirectionX 125 | ballDirectionY = ballDirectionY-1 126 | 127 | else if(ballX = paddleX + 1 And ballY = paddleY) Then 128 | ballDirectionX = ballDirectionX-1 129 | ballDirectionY = ballDirectionY-1 130 | 131 | else if(ballX = paddleX + 2 And ballY = paddleY) Then 132 | ballDirectionX = ballDirectionX 133 | ballDirectionY = ballDirectionY-1 134 | End If 135 | End If 136 | 137 | ballX =ballX + ballDirectionX 138 | ballY = ballY + ballDirectionY 139 | 140 | oldBallX = ballX 141 | oldBallY = ballY 142 | End If 143 | 144 | App.drawPixel(ballX, ballY,Array As Int(150,150,0)) 145 | 146 | If(ballY > 8) Then 147 | points=0 148 | oldBallX=0 149 | oldBallY=0 150 | ballDirectionY=1 151 | ballDirectionX=1 152 | ballX = Rnd(3,19) 153 | ballY = 1 154 | End If 155 | End Sub 156 | 157 | Sub inPaddle(x As Int,y As Int,rectX As Int,rectY As Int,rectWidth As Int,rectHeight As Int) As Boolean 158 | Dim result As Boolean=False 159 | If ((x >= rectX And x <= (rectX + rectWidth)) And(y+1 >= rectY And y <= (rectY + rectHeight))) Then 160 | result = True 161 | points=points+1 162 | End If 163 | Return result 164 | End Sub 165 | -------------------------------------------------------------------------------- /Flickr/Flickr.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim first_name As String 13 | dim Followers as String 14 | End Sub 15 | 16 | ' ignore 17 | public Sub GetNiceName() As String 18 | Return App.name 19 | End Sub 20 | 21 | ' ignore 22 | public Sub Run(Tag As String, Params As Map) As Object 23 | Return App.interface(Tag,Params) 24 | End Sub 25 | 26 | ' Config your App 27 | Public Sub Initialize() As String 28 | 29 | 'initialize the AWTRIX class and parse the instance; dont touch this 30 | App.Initialize(Me,"App") 31 | 32 | 'App name (must be unique, no spaces) 33 | App.name = "Flickr" 34 | 35 | 'Version of the App 36 | App.version = "1.0" 37 | 38 | 'Description of the App. You can use HTML to format it 39 | App.description = $" 40 | Shows the number of you Flickr followers 41 | "$ 42 | 43 | 'The developer if this App 44 | App.author = "Blueforcer" 45 | 46 | 'Icon (ID) to be displayed in the Appstore and MyApps 47 | App.coverIcon = 32 48 | 49 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 50 | App.settings = CreateMap("UserID":"") 51 | 52 | 'Setup Instructions. You can use HTML to format it 53 | App.setupDescription = $" 54 | UserID:Your Flickr UserID. Can be found in the addressbar while browsing your profilepage
55 | "$ 56 | 57 | 58 | 59 | 'How many downloadhandlers should be generated 60 | App.downloads = 1 61 | 62 | 'IconIDs from AWTRIXER. You can add multiple if you need more 63 | App.icons = Array As Int(32) 64 | 65 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 66 | App.tick = 65 67 | 68 | 69 | 'ignore 70 | App.makeSettings 71 | Return "AWTRIX20" 72 | End Sub 73 | 74 | 'this sub is called right before AWTRIX will display your App 75 | Sub App_Started 76 | 77 | End Sub 78 | 79 | 'this sub is called if AWTRIX switch to thee next app and pause this one 80 | Sub App_Exited 81 | 82 | End Sub 83 | 84 | 'this sub is called right before AWTRIX will display your App. 85 | 'if you need to another Icon you can set your Iconlist here again. 86 | Sub App_iconRequest 87 | 'App.Icons = Array As Int(4) 88 | End Sub 89 | 90 | 'If the user change any Settings in the webinterface, this sub will be called 91 | Sub App_settingsChanged 92 | 93 | End Sub 94 | 95 | 'if you create an Game, use this sub to get the button presses from the Weeebinterface or Controller 96 | 'button defines the buttonID of thee controller, dir is true if it is pressed 97 | Sub App_controllerButton(button As Int,dir As Boolean) 98 | 99 | End Sub 100 | 101 | 'if you create an Game, use this sub to get the Analog Values of thee connected Controller 102 | Sub App_controllerAxis(axis As Int, dir As Float) 103 | 104 | End Sub 105 | 106 | 'Called with every update from Awtrix 107 | 'return one URL for each downloadhandler 108 | Sub App_startDownload(jobNr As Int) 109 | Select jobNr 110 | Case 1 111 | App.Download("https://www.flickr.com/photos/"& App.get("UserID")) 112 | End Select 113 | End Sub 114 | 115 | 'process the response from each download handler 116 | 'if youre working with JSONs you can use this online parser 117 | 'to generate the code automaticly 118 | 'https://json.blueforcer.de/ 119 | Sub App_evalJobResponse(Resp As JobResponse) 120 | Try 121 | If Resp.success Then 122 | Select Resp.jobNr 123 | Case 1 124 | Dim Reader As TextReader 125 | Reader.Initialize(Resp.Stream) 126 | Dim line As String 127 | line = Reader.ReadLine 128 | Do While line <> Null 129 | If line.Contains("followerCount") Then 130 | Followers=line.SubString2(line.IndexOf($""followerCount""$)+16,line.IndexOf($","followingCount"$)) 131 | Followers=Followers.Replace(".","") 132 | Exit 133 | End If 134 | line = Reader.ReadLine 135 | Loop 136 | Reader.Close 137 | End Select 138 | End If 139 | Catch 140 | App.throwError(LastException) 141 | End Try 142 | End Sub 143 | 144 | 'With this sub you build your frame wtih eveery Tick. 145 | Sub App_genFrame 146 | App.genText(Followers ,True,1,Null,False) 147 | App.drawBMP(0,0,App.getIcon(32),8,8) 148 | End Sub -------------------------------------------------------------------------------- /myTischtennis/myTischtennis.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim TTR As String 13 | Dim QTTR As String 14 | 15 | End Sub 16 | 17 | ' ignore 18 | public Sub GetNiceName() As String 19 | Return App.name 20 | End Sub 21 | 22 | ' ignore 23 | public Sub Run(Tag As String, Params As Map) As Object 24 | Return App.interface(Tag,Params) 25 | End Sub 26 | 27 | ' Config your App 28 | Public Sub Initialize() As String 29 | 30 | 'initialize the AWTRIX class and parse the instance; dont touch this 31 | App.Initialize(Me,"App") 32 | 33 | 'App name (must be unique, no spaces) 34 | App.name = "myTischtennis" 35 | 36 | 'Version of the App 37 | App.version = "1.0" 38 | 39 | 'Description of the App. You can use HTML to format it 40 | App.description = $" 41 | Shows your TTR (Table Tennis Ranking) 42 | "$ 43 | 44 | 'The developer if this App 45 | App.author = "Matthias Wahl" 46 | 47 | 'Icon (ID) to be displayed in the Appstore and MyApps 48 | App.coverIcon = 761 49 | 50 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 51 | App.settings = CreateMap("UserName":"","Password":"","TTR":True,"QTTR":False) 52 | 53 | 'Setup Instructions. You can use HTML to format it 54 | App.setupDescription = $" 55 | This App shows your TTR. You need a premium account for myTischtennis.de
56 | UserName: Write your UserName from myTischtennis.de here. 57 | Password: Write your Password from myTischtennis.de here. 58 | TTR: Show your TTR (true/false). 59 | TTR: Show your QTTR (true/false). 60 | "$ 61 | 62 | 'define some tags to simplify the search in the Appstore 63 | App.tags = Array As String("myTischtennis", "TTR") 64 | 65 | 'How many downloadhandlers should be generated 66 | App.downloads = 1 67 | 68 | 'IconIDs from AWTRIXER. You can add multiple if you need more 69 | App.icons = Array As Int(761) 70 | 71 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 72 | App.tick = 65 73 | 74 | 75 | 'ignore 76 | App.makeSettings 77 | Return "AWTRIX20" 78 | End Sub 79 | 80 | 81 | 'Called with every update from Awtrix 82 | 'return one URL for each downloadhandler 83 | Sub App_startDownload(jobNr As Int) 84 | Select jobNr 85 | Case 1 86 | App.PostMultipart("https://www.mytischtennis.de/community/events",CreateMap("userNameB":App.get("UserName"),"userPassWordB":App.get("Password")),Null) 87 | App.setHeader(CreateMap("goLogin":"Einloggen","Accept-Encoding":"identity")) 88 | End Select 89 | End Sub 90 | 91 | 'process the response from each download handler 92 | 'if youre working with JSONs you can use this online parser 93 | 'to generate the code automaticly 94 | 'https://json.blueforcer.de/ 95 | Sub App_evalJobResponse(Resp As JobResponse) 96 | Try 97 | If Resp.success Then 98 | Select Resp.jobNr 99 | Case 1 100 | Dim Reader As TextReader 101 | Reader.Initialize(Resp.Stream) 102 | Dim line As String 103 | line = Reader.ReadLine 104 | Do While line <> Null 105 | If line.Contains("TTR:") Then 106 | TTR = line.SubString2(18,line.Length) 107 | End If 108 | If line.Contains(">Q-TTR:") Then 109 | QTTR = line.SubString2(120,line.Length) 110 | End If 111 | line = Reader.ReadLine 112 | Loop 113 | End Select 114 | End If 115 | Catch 116 | Log("Try Catch rausgeflogen...") 117 | App.throwError(LastException) 118 | End Try 119 | End Sub 120 | 121 | 'With this sub you build your frame wtih eveery Tick. 122 | Sub App_genFrame 123 | If App.get("TTR")=True And App.get("QTTR")=False Then 124 | App.genText("TTR: " & QTTR ,True,1,Null,False) 125 | End If 126 | If App.get("QTTR")=True And App.get("TTR") = False Then 127 | App.genText("QTTR: " & TTR ,True,1,Null,False) 128 | End If 129 | If App.get("QTTR") = True And App.get("TTR") = True Then 130 | App.genText("TTR: " & TTR & " - QTTR: " & QTTR,True,1,Null,False) 131 | End If 132 | If App.get("QTTR") = False And App.get("TTR") = False Then 133 | App.genText("Setup again!",True,1,Null,False) 134 | End If 135 | 136 | App.drawBMP(0,0,App.getIcon(761),8,8) 137 | End Sub -------------------------------------------------------------------------------- /PiHole/Template.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | 8 | Sub Class_Globals 9 | Dim App As AWTRIX 10 | 11 | 'Declare your variables here 12 | Dim first_name As String 13 | 14 | End Sub 15 | 16 | ' ignore 17 | public Sub GetNiceName() As String 18 | Return App.name 19 | End Sub 20 | 21 | ' ignore 22 | public Sub Run(Tag As String, Params As Map) As Object 23 | Return App.AppControl(Tag,Params) 24 | End Sub 25 | 26 | ' Config your App 27 | Public Sub Initialize() As String 28 | 29 | 'initialize the AWTRIX class and parse the instance; dont touch this 30 | App.Initialize(Me,"App") 31 | 32 | 'App name (must be unique, no spaces) 33 | App.name = "Template" 34 | 35 | 'Version of the App 36 | App.version = "2.0" 37 | 38 | 'Description of the App. You can use HTML to format it 39 | App.description = $" 40 | This is just a template 41 | "$ 42 | 43 | 'The developer if this App 44 | App.author = "Blueforcer" 45 | 46 | 'Icon (ID) to be displayed in the Appstore and MyApps 47 | App.coverIcon = 6 48 | 49 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 50 | App.settings = CreateMap("CustomText":"Hello World") 51 | 52 | 'Setup Instructions. You can use HTML to format it 53 | App.setupDescription = $" 54 | CustomText:Text wich will be shown
55 | "$ 56 | 57 | 'define some tags to simplify the search in the Appstore 58 | App.tags = Array As String("Template", "Awesome") 59 | 60 | 'How many downloadhandlers should be generated 61 | App.downloads = 1 62 | 63 | 'IconIDs from AWTRIXER. You can add multiple if you need more 64 | App.icons = Array As Int(6) 65 | 66 | 'Tickinterval in ms (should be 65 by default, for smooth scrolling)) 67 | App.tick = 65 68 | 69 | 'If set to true AWTRIX will wait for the "finish" command before switch to the next app. 70 | App.lock = False 71 | 72 | 'This tolds AWTRIX that this App is an Game. 73 | App.isGame = False 74 | 75 | 'If set to true, AWTRIX will download new data before each start. 76 | App.forceDownload = False 77 | 78 | 'ignore 79 | App.makeSettings 80 | Return "AWTRIX2" 81 | End Sub 82 | 83 | 'this sub is called right before AWTRIX will display your App 84 | Sub App_Started 85 | 86 | End Sub 87 | 88 | 89 | 'this sub is called if AWTRIX switch to thee next app and pause this one 90 | Sub App_Exited 91 | 92 | End Sub 93 | 94 | 'this sub is called right before AWTRIX will display your App. 95 | 'if you need to another Icon you can set your Iconlist here again. 96 | Sub App_iconRequest 97 | 'App.Icons = Array As Int(4) 98 | End Sub 99 | 100 | 'If the user change any Settings in the webinterface, this sub will be called 101 | Sub App_settingsChanged 102 | 103 | End Sub 104 | 105 | 'if you create an Game, use this sub to get the button presses from the Weeebinterface or Controller 106 | 'button defines the buttonID of thee controller, dir is true if it is pressed 107 | Sub App_controllerButton(button As Int,dir As Boolean) 108 | 109 | End Sub 110 | 111 | 'if you create an Game, use this sub to get the Analog Values of thee connected Controller 112 | Sub App_controllerAxis(axis As Int, dir As Float) 113 | 114 | End Sub 115 | 116 | 117 | 'Called with every update from Awtrix 118 | 'return one URL for each downloadhandler 119 | Sub App_startDownload(jobNr As Int) 120 | Select jobNr 121 | Case 1 122 | App.URL= "https://reqres.in/api/users/2" 123 | End Select 124 | End Sub 125 | 126 | 'process the response from each download handler 127 | 'if youre working with JSONs you can use this online parser 128 | 'to generate the code automaticly 129 | 'https://json.blueforcer.de/ 130 | Sub App_evalJobResponse(Resp As JobResponse) 131 | Try 132 | If Resp.success Then 133 | Select Resp.jobNr 134 | Case 1 135 | Dim parser As JSONParser 136 | parser.Initialize(Resp.ResponseString) 137 | Dim root As Map = parser.NextObject 138 | Dim data As Map = root.Get("data") 139 | first_name = data.Get("first_name") 140 | End Select 141 | End If 142 | Catch 143 | App.throwError(LastException) 144 | End Try 145 | End Sub 146 | 147 | 'With this sub you build your frame wtih eveery Tick. 148 | Sub App_genFrame 149 | App.genText(App.get("CustomText") & " " & first_name ,True,1,Null,False) 150 | App.drawBMP(0,0,App.getIcon(6),8,8) 151 | End Sub -------------------------------------------------------------------------------- /OpenWeather/OpenWeather.bas: -------------------------------------------------------------------------------- 1 | B4J=true 2 | Group=Default Group 3 | ModulesStructureVersion=1 4 | Type=Class 5 | Version=4.2 6 | @EndOfDesignText@ 7 | Sub Class_Globals 8 | Dim App As AWTRIX 9 | 10 | '###### nötige Variablen deklarieren ###### 11 | Dim temp As String = 0 12 | Dim iconID As Int = 487 13 | End Sub 14 | 15 | ' ignore 16 | Public Sub Initialize() As String 17 | 18 | App.Initialize(Me,"App") 19 | 20 | 'change plugin name (must be unique, avoid spaces) 21 | App.Name="OpenWeather" 22 | 23 | 'Version of the App 24 | App.Version="1.2" 25 | 26 | 'Description of the App. You can use HTML to format it 27 | App.Description=$" 28 | Shows the current temperature of your location.
29 | powered by OpenWeatherMap.org< 30 | "$ 31 | 32 | App.CoverIcon=349 33 | 34 | App.Author="Blueforcer" 35 | 36 | 'SetupInstructions. You can use HTML to format it 37 | App.setupDescription= $" 38 | Unit: enter your unit (metric or imperial)
39 | LocationID: search for the weather at your location and get the ID from the adressbar (e.g https://openweathermap.org/city/2874230)
40 | APIKey: get yours at https://home.openweathermap.org/api_keys

41 | "$ 42 | 43 | 'How many downloadhandlers should be generated 44 | App.Downloads=1 45 | 46 | 'IconIDs from AWTRIXER. 47 | App.Icons=Array(399) 48 | 49 | 'Tickinterval in ms (should be 65 by default) 50 | App.Tick=65 51 | 52 | 'If set to true AWTRIX will wait for the "finish" command before switch to the next app. 53 | App.Lock=False 54 | 55 | 'needed Settings for this App (Wich can be configurate from user via webinterface) 56 | App.Settings=CreateMap("APIKey":"","Unit":"metric","LocationID":"2874230") 57 | 58 | 59 | App.MakeSettings 60 | Return "AWTRIX20" 61 | End Sub 62 | 63 | ' ignore 64 | public Sub GetNiceName() As String 65 | Return App.Name 66 | End Sub 67 | 68 | ' ignore 69 | public Sub Run(Tag As String, Params As Map) As Object 70 | Return App.interface(Tag,Params) 71 | End Sub 72 | 73 | Sub App_iconRequest 74 | App.Icons=Array As Int(iconID) 75 | End Sub 76 | 77 | 'Called with every update from Awtrix 78 | 'return one URL for each downloadhandler 79 | Sub App_startDownload(jobNr As Int) 80 | Select jobNr 81 | Case 1 82 | App.Download("http://api.openweathermap.org/data/2.5/weather?id="&App.get("LocationID")&"&appid="&App.get("APIKey")&"&units="&App.get("Unit")) 83 | End Select 84 | End Sub 85 | 86 | 'process the response from each download handler 87 | 'if youre working with JSONs you can use this online parser 88 | 'to generate the code automaticly 89 | 'https://json.blueforcer.de/ 90 | Sub App_evalJobResponse(Resp As JobResponse) 91 | Try 92 | If Resp.success Then 93 | Select Resp.jobNr 94 | Case 1 95 | Dim parser As JSONParser 96 | parser.Initialize(Resp.ResponseString) 97 | Dim root As Map = parser.NextObject 98 | Dim MainMap As Map = root.Get("main") 99 | Dim t1 As Double = MainMap.Get("temp") 100 | temp = NumberFormat(t1,1,1) & "°" 101 | 102 | Dim weather As List = root.Get("weather") 103 | Dim colweather As Map = weather.Get(0) 104 | iconID=getIconID(colweather.Get("icon")) 105 | End Select 106 | End If 107 | Catch 108 | Log("Error in: "& App.Name & CRLF & LastException) 109 | Log("API response: " & CRLF & Resp.ResponseString) 110 | End Try 111 | End Sub 112 | 113 | 114 | Sub App_genFrame 115 | App.genText(temp,True,1,Null,True) 116 | App.drawBMP(0,0,App.getIcon(iconID),8,8) 117 | End Sub 118 | 119 | Sub getIconID (ico As String)As Int 120 | Select ico 121 | 'Day 122 | Case "01d" 123 | Return 349 124 | Case "02d" 125 | Return 312 126 | Case "03d" 127 | Return 486 128 | Case "04d" 129 | Return 486 130 | Case "09d" 131 | Return 346 132 | Case "10d" 133 | Return 346 134 | Case "11d" 135 | Return 345 136 | Case "13d" 137 | Return 344 138 | Case "50d" 139 | Return 347 140 | 'Night 141 | Case "01n" 142 | Return 348 143 | Case "02n" 144 | Return 485 145 | Case "03n" 146 | Return 486 147 | Case "04n" 148 | Return 486 149 | Case "09n" 150 | Return 346 151 | Case "10n" 152 | Return 346 153 | Case "11n" 154 | Return 345 155 | Case "13n" 156 | Return 347 157 | Case "50n" 158 | Return 347 159 | Case Else 160 | Log("Error from weatherApp:") 161 | Log("Icon " & ico & " not found!") 162 | Return 487 163 | End Select 164 | 165 | 166 | End Sub 167 | --------------------------------------------------------------------------------