+#!/usr/bin/python
+# Copyright (c) 2016 Samsung Electronics Co., Ltd
+#
+# Licensed under the Flora License, Version 1.1 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://floralicense.org/license/
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Contributors:
+# - S-Core Co., Ltd
+
import logging
import requests
import re
if pkg.get('meta'):
if not pkg['name'] in children:
- meta_nodes.append(make_linked_meta_node(pkg['name'], pkg['summary']))
+ meta_nodes.append(make_linked_meta_node(pkg['name'], pkg['summary'], meta_info['category']))
else:
meta_nodes.append(make_node(pkg, meta_info.get('category')))
# Added 'zz' to non meta-package because they are to be listed last
return n
def make_meta_node(pkgname, viewtext):
return dict(text=viewtext, metaname=pkgname, nodes=[])
- def make_linked_meta_node(pkgname, viewtext):
- return dict(text='<i>'+viewtext+'</i>', metaname=pkgname, nodes=[])
+ def make_linked_meta_node(pkgname, viewtext, cat):
+ return dict(text='<i>'+viewtext+'</i>', metaname=pkgname, nodes=[], category=cat)
def is_blank_ui_meta_node(pkgname):
return (pkgname[-8:-2] == '__UI__')
def handle_ui_meta_node(tag, node):
# e.g., Convert http://a.com/a/ to https://a.com/a/blahblah.ks
# Works for file-indexing html
if ksURL[-3:].lower() != ".ks":
+ error = 0
if ksURL[-1:] != "/":
ksURL += "/"
r = requests.get(ksURL)
- m = re.search('>([^<]*\\.ks)\\s*<', r.text)
- if not m.group(1):
+ if r.status_code == requests.codes.ok:
+ m = re.search('>([^<]*\\.ks)\\s*<', r.text)
+ else:
+ error = 1
+ if error == 0 and not m.group(1):
m = re.search('"([^"]*\\.ks)\\s*"', r.text)
if not m.group(1):
m = re.search("'([^']*\\.ks)\\s*'", r.text)
if not m.group(1):
- node['icon'] = 'glyphicon glyphicon-remove-sign'
- node['tooltip'] = 'Cannot find image base from' + ksURL
- return node
+ error = 1
+ if error == 1:
+ node['icon'] = 'glyphicon glyphicon-remove-sign'
+ node['tooltip'] = 'Cannot find image base from' + ksURL
+ return node
ksURL += m.group(1)
node['tooltip'] = 'Image base from '+ksURL
node['ks'] = ksURL
misc_info['text'] = 'Advanced (individual packages)'
misc_info['nodes'] = []
for k, v in pkg_dict.iteritems():
- # Pkg is not referenced from Meta-pkg
- if not v.get('meta') and refer_count[v['id']] == 0:
+ # Add ALL non-block packages
+ if v['name'][0:15] != 'building-blocks':
misc_info['nodes'].append(make_node(v))
misc_info['nodes'] = sorted(misc_info['nodes'], key = lambda k: k['metaname'] if 'metaname' in k else k['text'])