@@ -56,11 +56,25 @@ TABS.firmware_flasher.initialize = function (callback) {
56
56
worker . postMessage ( str ) ;
57
57
}
58
58
59
+ function getReleaseMajor ( releaseName ) {
60
+ // "name":"inav-9.0.0-dev-20250124-28-d1ef85e82d8aa5bb8b85e518893c8e4f6ab61d6e"
61
+ var releaseNameExpression = / ^ i n a v - ( \d + ) ( [ \d . ] + ) - ( c i | d e v ) - ( \d { 4 } ) ( \d { 2 } ) ( \d { 2 } ) - ( \d + ) - ( \w + ) $ / ;
62
+ var match = releaseNameExpression . exec ( releaseName ) ;
63
+
64
+ if ( ! match ) {
65
+ console . log ( releaseName + " not matched" ) ;
66
+ //alert(releaseName);
67
+ return 0 ;
68
+ }
69
+
70
+ return match [ 1 ] ;
71
+ }
72
+
59
73
function parseDevFilename ( filename ) {
60
74
//var targetFromFilenameExpression = /inav_([\d.]+)?_?([^.]+)\.(.*)/;
61
75
// inav_8.0.0_TUNERCF405_dev-20240617-88fb1d0.hex
62
76
// inav_8.0.0_TUNERCF405_ci-20240617-88fb1d0.hex
63
- var targetFromFilenameExpression = / ^ i n a v _ ( [ \d . ] + ) _ ( [ A - Z 0 - 9 _ ] + ) _ ( c i | d e v ) - ( \d { 4 } ) ( \d { 2 } ) ( \d { 2 } ) - ( \w + ) \. ( h e x ) $ / ;
77
+ var targetFromFilenameExpression = / ^ i n a v _ ( \d + ) ( [ \d . ] + ) _ ( [ A - Z a - z 0 - 9 _ ] + ) _ ( c i | d e v ) - ( \d { 4 } ) ( \d { 2 } ) ( \d { 2 } ) - ( \w + ) \. ( h e x ) $ / ;
64
78
var match = targetFromFilenameExpression . exec ( filename ) ;
65
79
66
80
if ( ! match ) {
@@ -69,9 +83,11 @@ TABS.firmware_flasher.initialize = function (callback) {
69
83
}
70
84
71
85
return {
72
- raw_target : match [ 2 ] ,
73
- target : match [ 2 ] . replace ( "_" , " " ) ,
74
- format : match [ 8 ] ,
86
+ raw_target : match [ 3 ] ,
87
+ target : match [ 3 ] . replace ( "_" , " " ) ,
88
+ format : match [ 9 ] ,
89
+ version : match [ 1 ] + match [ 2 ] ,
90
+ major : match [ 1 ]
75
91
} ;
76
92
}
77
93
@@ -151,14 +167,12 @@ TABS.firmware_flasher.initialize = function (callback) {
151
167
} ) ;
152
168
153
169
if ( showDevReleases ) {
170
+ var majorCount = { } ;
154
171
TABS . firmware_flasher . devReleasesData . forEach ( function ( release ) {
155
172
release . assets . forEach ( function ( asset ) {
156
173
var result = parseDevFilename ( asset . name ) ;
157
174
158
- if ( ( ! showDevReleases && release . prerelease ) || ! result ) {
159
- return ;
160
- }
161
- if ( $ . inArray ( result . target , unsortedTargets ) == - 1 ) {
175
+ if ( result && $ . inArray ( result . target , unsortedTargets ) == - 1 ) {
162
176
unsortedTargets . push ( result . target ) ;
163
177
}
164
178
} ) ;
@@ -212,8 +226,20 @@ TABS.firmware_flasher.initialize = function (callback) {
212
226
} ) ;
213
227
} ) ;
214
228
215
- if ( showDevReleases ) {
229
+ if ( showDevReleases && TABS . firmware_flasher . devReleasesData ) {
230
+ var majorCount = { } ;
216
231
TABS . firmware_flasher . devReleasesData . forEach ( function ( release ) {
232
+ var major = getReleaseMajor ( release . name ) ;
233
+
234
+ if ( ! ( major in majorCount ) ) {
235
+ majorCount [ major ] = 0 ;
236
+ }
237
+
238
+ if ( majorCount [ major ] >= 10 ) {
239
+ return ;
240
+ }
241
+
242
+ majorCount [ major ] ++ ;
217
243
218
244
var versionFromTagExpression = / v ? ( .* ) / ;
219
245
var matchVersionFromTag = versionFromTagExpression . exec ( release . tag_name ) ;
@@ -278,7 +304,7 @@ TABS.firmware_flasher.initialize = function (callback) {
278
304
return ;
279
305
} ;
280
306
281
- $ . get ( 'https://api.github.com/repos/iNavFlight/inav-nightly/releases?per_page=10 ' , function ( releasesData ) {
307
+ $ . get ( 'https://api.github.com/repos/iNavFlight/inav-nightly/releases?per_page=50 ' , function ( releasesData ) {
282
308
TABS . firmware_flasher . devReleasesData = releasesData ;
283
309
} ) . fail ( function ( data ) {
284
310
TABS . firmware_flasher . devReleasesData = { } ;
0 commit comments