Files
LinuxPA/appimg/Proc.go
T
2017-04-08 20:06:50 -05:00

61 lines
1.2 KiB
Go

//Package appimg is to download and update AppImages for LinuxPA.
//Converted from github.com/CalebQ42/bbConvert
package appimg
import "reflect"
//Convert converts the input string. Only returns <a> tags
func Convert(in string) (out []Tag) {
for i := 0; i < len(in); i++ {
v := in[i]
if v == '<' {
for j := i; j < len(in); j++ {
val := in[j]
if val == '>' {
var tmp Tag
tmp.process(in[i+1 : j+1])
if !tmp.end {
tmp.index[0] = i
tmp.index[1] = j
nd := fndend(tmp, in[j+1:])
if !reflect.DeepEqual(nd, Tag{}) && tmp.typ == "a" {
out = append(out, tmp)
}
}
break
}
}
}
}
return
}
func fndend(fnt Tag, area string) Tag {
var count int
for i, v := range area {
if v == '<' {
for j, val := range area[i:] {
if val == '>' {
var tmp Tag
tmp.process(area[i+1 : i+j+1])
if tmp.typ == fnt.typ {
if tmp.end {
if count == 0 {
tmp.index[0] = fnt.index[1] + 1 + i
tmp.index[1] = fnt.index[1] + j + i + 1
return tmp
}
count--
break
} else {
count++
break
}
}
}
}
}
}
return Tag{}
}