Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
MetaGer
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
57
Issues
57
List
Boards
Labels
Service Desk
Milestones
Merge Requests
10
Merge Requests
10
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
open-source
MetaGer
Commits
73af4340
Commit
73af4340
authored
Sep 17, 2018
by
Dominik Hebeler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
English version now uses Scopia
parent
ac9abf35
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
68 additions
and
31 deletions
+68
-31
app/Http/Controllers/FokiLoader.php
app/Http/Controllers/FokiLoader.php
+6
-6
app/Http/Controllers/StartpageController.php
app/Http/Controllers/StartpageController.php
+8
-8
app/MetaGer.php
app/MetaGer.php
+23
-2
app/Models/Searchengine.php
app/Models/Searchengine.php
+3
-0
app/Models/parserSkripte/Overture.php
app/Models/parserSkripte/Overture.php
+14
-13
app/Models/parserSkripte/Scopia.php
app/Models/parserSkripte/Scopia.php
+6
-2
resources/views/parts/foki.blade.php
resources/views/parts/foki.blade.php
+8
-0
No files found.
app/Http/Controllers/FokiLoader.php
View file @
73af4340
...
...
@@ -10,12 +10,12 @@ class FokiLoader
{
$sumaFile
=
""
;
if
(
App
::
isLocale
(
'en'
))
{
$sumaFile
=
config_path
()
.
"/sumas.xml"
;
$sumaFile
=
config_path
()
.
"/sumas
En
.xml"
;
}
else
{
$sumaFile
=
config_path
()
.
"/sumas.xml"
;
}
$xml
=
simplexml_load_file
(
$sumaFile
);
$xml
=
simplexml_load_file
(
$sumaFile
);
$sumas
=
$xml
->
xpath
(
"suma"
);
$foki
=
[];
...
...
@@ -24,13 +24,13 @@ class FokiLoader
if
(
isset
(
$suma
[
'type'
]))
{
$f
=
explode
(
","
,
$suma
[
'type'
]
->
__toString
());
foreach
(
$f
as
$tmp
)
{
$displayName
=
$suma
[
'displayName'
]
->
__toString
();
$url
=
isset
(
$suma
[
'homepage'
])
?
$suma
[
'homepage'
]
->
__toString
()
:
"https://metager.de"
;
$displayName
=
$suma
[
'displayName'
]
->
__toString
();
$url
=
isset
(
$suma
[
'homepage'
])
?
$suma
[
'homepage'
]
->
__toString
()
:
"https://metager.de"
;
$foki
[
$tmp
][
$suma
[
'name'
]
->
__toString
()]
=
[
'displayName'
=>
$displayName
,
'url'
=>
$url
];
}
}
else
{
$displayName
=
$suma
[
'displayName'
]
->
__toString
();
$url
=
isset
(
$suma
[
'homepage'
])
?
$suma
[
'homepage'
]
->
__toString
()
:
"https://metager.de"
;
$displayName
=
$suma
[
'displayName'
]
->
__toString
();
$url
=
isset
(
$suma
[
'homepage'
])
?
$suma
[
'homepage'
]
->
__toString
()
:
"https://metager.de"
;
$foki
[
"andere"
][
$suma
[
'name'
]
->
__toString
()]
=
[
'displayName'
=>
$displayName
,
'url'
=>
$url
];
}
}
...
...
app/Http/Controllers/StartpageController.php
View file @
73af4340
...
...
@@ -5,8 +5,8 @@ namespace App\Http\Controllers;
use
App
;
use
Illuminate\Http\Request
;
use
Jenssegers\Agent\Agent
;
use
Response
;
use
LaravelLocalization
;
use
Response
;
class
StartpageController
extends
Controller
{
...
...
@@ -20,7 +20,7 @@ class StartpageController extends Controller
public
function
loadStartPage
(
Request
$request
)
{
$focusPages
=
[];
$theme
=
"default"
;
$theme
=
"default"
;
$optionParams
=
[
'param_sprueche'
,
'param_newtab'
,
'param_maps'
,
'param_autocomplete'
,
'param_lang'
,
'param_key'
];
$option_values
=
[];
...
...
@@ -33,12 +33,12 @@ class StartpageController extends Controller
}
$autocomplete
=
'on'
;
if
(
in_array
(
'autocomplete'
,
array_keys
(
$option_values
)))
{
if
(
in_array
(
'autocomplete'
,
array_keys
(
$option_values
)))
{
$autocomplete
=
$option_values
[
'autocomplete'
];
}
$lang
=
LaravelLocalization
::
getCurrentLocale
();
if
(
$lang
===
'de'
)
{
if
(
$lang
===
'de'
||
$lang
===
"en"
)
{
$lang
=
'all'
;
}
...
...
@@ -78,9 +78,9 @@ class StartpageController extends Controller
public
function
loadPlugin
(
$params
,
$locale
=
"de"
)
{
$params
=
unserialize
(
base64_decode
(
$params
));
$params
=
unserialize
(
base64_decode
(
$params
));
$requests
=
$params
;
$params
=
[];
$params
=
[];
foreach
(
$requests
as
$key
=>
$value
)
{
if
(
strpos
(
$key
,
"param_"
)
===
0
)
{
$key
=
substr
(
$key
,
strpos
(
$key
,
"param_"
)
+
6
);
...
...
@@ -135,12 +135,12 @@ class StartpageController extends Controller
public
function
berlin
(
Request
$request
)
{
$link
=
""
;
$link
=
""
;
$password
=
""
;
if
(
$request
->
filled
(
'eingabe'
))
{
$password
=
getenv
(
'berlin'
);
$password
=
md5
(
$request
->
input
(
'eingabe'
)
.
" -host:userpage.fu-berlin.de"
.
$password
);
$link
=
"/meta/meta.ger3?eingabe="
.
$request
->
input
(
'eingabe'
)
.
" -host:userpage.fu-berlin.de&focus=web&password="
.
$password
.
"&encoding=utf8&lang=all&site=fu-berlin.de&quicktips=off&out=results-with-style"
;
$link
=
"/meta/meta.ger3?eingabe="
.
$request
->
input
(
'eingabe'
)
.
" -host:userpage.fu-berlin.de&focus=web&password="
.
$password
.
"&encoding=utf8&lang=all&site=fu-berlin.de&quicktips=off&out=results-with-style"
;
}
return
view
(
'berlin'
)
->
with
(
'title'
,
'Testseite für die FU-Berlin'
)
...
...
app/MetaGer.php
View file @
73af4340
...
...
@@ -34,6 +34,7 @@ class MetaGer
protected
$warnings
=
[];
protected
$errors
=
[];
protected
$addedHosts
=
[];
protected
$availableFoki
=
[];
protected
$startCount
=
0
;
protected
$canCache
=
false
;
# Daten über die Abfrage$
...
...
@@ -525,6 +526,20 @@ class MetaGer
$overtureEnabled
=
false
;
$sumaCount
=
0
;
/*
* Erstellt eine Liste mit Foki, die verfügbar sind
*/
$this
->
availableFoki
=
[];
foreach
(
$sumas
as
$suma
)
{
$foki
=
explode
(
","
,
trim
(
$suma
[
"type"
]));
foreach
(
$foki
as
$fokus
)
{
if
(
!
empty
(
$fokus
))
{
$this
->
availableFoki
[
$fokus
]
=
"available"
;
}
}
}
$isCustomSearch
=
$this
->
startsWith
(
$this
->
fokus
,
'focus_'
);
# Im Falle einer Custom-Suche ohne mindestens einer selektierter Suchmaschine wird eine Web-Suche durchgeführt
...
...
@@ -646,7 +661,7 @@ class MetaGer
public
function
sumaIsSelected
(
$suma
,
$request
,
$custom
)
{
if
(
$custom
)
{
if
(
$request
->
filled
(
"engine_"
.
$suma
[
"name"
]
))
{
if
(
$request
->
filled
(
"engine_"
.
strtolower
(
$suma
[
"name"
])
))
{
return
true
;
}
}
else
{
...
...
@@ -950,7 +965,7 @@ class MetaGer
$this
->
fokus
=
$request
->
input
(
'focus'
,
'web'
);
# Suma-File
if
(
App
::
isLocale
(
"en"
))
{
$this
->
sumaFile
=
config_path
()
.
"/sumas.xml"
;
$this
->
sumaFile
=
config_path
()
.
"/sumas
En
.xml"
;
}
else
{
$this
->
sumaFile
=
config_path
()
.
"/sumas.xml"
;
}
...
...
@@ -1561,6 +1576,12 @@ class MetaGer
return
$this
->
lang
;
}
public
function
getAvailableFoki
()
{
return
$this
->
availableFoki
;
}
public
function
getSprueche
()
{
return
$this
->
sprueche
;
...
...
app/Models/Searchengine.php
View file @
73af4340
...
...
@@ -31,6 +31,9 @@ abstract class Searchengine
public
$startTime
;
# Die Zeit der Erstellung dieser Suchmaschine
public
$hash
;
# Der Hash-Wert dieser Suchmaschine
private
$user
;
# Username für HTTP-Auth (falls angegeben)
private
$password
;
# Passwort für HTTP-Auth (falls angegeben)
public
$fp
;
# Wird für Artefakte benötigt
public
$socketNumber
=
null
;
# Wird für Artefakte benötigt
public
$counter
=
0
;
# Wird eventuell für Artefakte benötigt
...
...
app/Models/parserSkripte/Overture.php
View file @
73af4340
...
...
@@ -25,10 +25,10 @@ class Overture extends Searchengine
$results
=
$content
->
xpath
(
'//Results/ResultSet[@id="inktomi"]/Listing'
);
foreach
(
$results
as
$result
)
{
$title
=
$result
[
"title"
];
$link
=
$result
->
{
"ClickUrl"
}
->
__toString
();
$title
=
$result
[
"title"
];
$link
=
$result
->
{
"ClickUrl"
}
->
__toString
();
$anzeigeLink
=
$result
[
"siteHost"
];
$descr
=
$result
[
"description"
];
$descr
=
$result
[
"description"
];
$this
->
counter
++
;
$this
->
results
[]
=
new
\
App\Models\Result
(
$this
->
engine
,
...
...
@@ -36,7 +36,8 @@ class Overture extends Searchengine
$link
,
$anzeigeLink
,
$descr
,
$this
->
displayName
,
$this
->
homepage
,
$this
->
displayName
,
$this
->
homepage
,
$this
->
counter
);
}
...
...
@@ -44,10 +45,10 @@ class Overture extends Searchengine
# Nun noch die Werbeergebnisse:
$ads
=
$content
->
xpath
(
'//Results/ResultSet[@id="searchResults"]/Listing'
);
foreach
(
$ads
as
$ad
)
{
$title
=
$ad
[
"title"
];
$link
=
$ad
->
{
"ClickUrl"
}
->
__toString
();
$title
=
$ad
[
"title"
];
$link
=
$ad
->
{
"ClickUrl"
}
->
__toString
();
$anzeigeLink
=
$ad
[
"siteHost"
];
$descr
=
$ad
[
"description"
];
$descr
=
$ad
[
"description"
];
$this
->
counter
++
;
$this
->
ads
[]
=
new
\
App\Models\Result
(
$this
->
engine
,
...
...
@@ -55,7 +56,7 @@ class Overture extends Searchengine
$link
,
$anzeigeLink
,
$descr
,
$this
->
displayName
,
$this
->
homepage
,
$this
->
displayName
,
$this
->
homepage
,
$this
->
counter
);
}
...
...
@@ -87,9 +88,9 @@ class Overture extends Searchengine
// Yahoo liefert, wenn es keine weiteren Ergebnisse hat immer wieder die gleichen Ergebnisse
// Wir müssen also überprüfen, ob wir am Ende der Ergebnisse sind
$resultCount
=
$content
->
xpath
(
'//Results/ResultSet[@id="inktomi"]/MetaData/TotalHits'
);
$results
=
$content
->
xpath
(
'//Results/ResultSet[@id="inktomi"]/Listing'
);
$results
=
$content
->
xpath
(
'//Results/ResultSet[@id="inktomi"]/Listing'
);
if
(
isset
(
$resultCount
[
0
])
&&
sizeof
(
$results
)
>
0
)
{
$resultCount
=
intval
(
$resultCount
[
0
]
->
__toString
());
$resultCount
=
intval
(
$resultCount
[
0
]
->
__toString
());
$lastResultOnPage
=
intval
(
$results
[
sizeof
(
$results
)
-
1
][
"rank"
]);
if
(
$resultCount
<=
$lastResultOnPage
)
{
return
;
...
...
@@ -111,9 +112,9 @@ class Overture extends Searchengine
}
# Erstellen des neuen Suchmaschinenobjekts und anpassen des GetStrings:
$next
=
new
Overture
(
simplexml_load_string
(
$this
->
engine
),
$metager
);
$next
=
new
Overture
(
simplexml_load_string
(
$this
->
engine
),
$metager
);
$next
->
getString
=
preg_replace
(
"/&Keywords=.*?&/si"
,
"&"
,
$next
->
getString
)
.
"&"
.
$nextArgs
;
$next
->
hash
=
md5
(
$next
->
host
.
$next
->
getString
.
$next
->
port
.
$next
->
name
);
$this
->
next
=
$next
;
$next
->
hash
=
md5
(
$next
->
host
.
$next
->
getString
.
$next
->
port
.
$next
->
name
);
$this
->
next
=
$next
;
}
}
app/Models/parserSkripte/Scopia.php
View file @
73af4340
...
...
@@ -17,7 +17,10 @@ class Scopia extends Searchengine
public
function
loadResults
(
$result
)
{
$result
=
html_entity_decode
(
$result
);
$result
=
str_replace
(
"&"
,
"&"
,
$result
);
$result
=
preg_replace
(
"/<description>(.*?)<\/description>/si"
,
"<description><![CDATA[ $1 ]]></description>"
,
$result
);
$result
=
preg_replace
(
"/<title>(.*?)<\/title>/si"
,
"<title><![CDATA[ $1 ]]></title>"
,
$result
);
$result
=
preg_replace
(
"/<url>(.*?)<\/url>/si"
,
"<url><![CDATA[ $1 ]]></url>"
,
$result
);
try
{
$content
=
simplexml_load_string
(
$result
);
...
...
@@ -38,7 +41,8 @@ class Scopia extends Searchengine
$link
,
$anzeigeLink
,
$descr
,
$this
->
gefVon
,
$this
->
displayName
,
$this
->
homepage
,
$this
->
counter
);
}
...
...
resources/views/parts/foki.blade.php
View file @
73af4340
@
if
(
array_has
(
$metager
->
getAvailableFoki
(),
"web"
))
<
div
id
=
"web"
@
if
(
$metager
->
getFokus
()
===
"web"
)
class
=
"active"
@
endif
>
<
a
href
=
"@if(
$metager->getFokus
() === "
web
")#@else
{
!!$metager->generateSearchLink('web')!!
}
@endif"
target
=
"_self"
tabindex
=
"2"
>@
lang
(
'index.foki.web'
)
</
a
>
</
div
>
@
endif
@
if
(
array_has
(
$metager
->
getAvailableFoki
(),
"nachrichten"
))
<
div
id
=
"nachrichten"
@
if
(
$metager
->
getFokus
()
===
"nachrichten"
)
class
=
"active"
@
endif
>
<
a
href
=
"@if(
$metager->getFokus
() === "
nachrichten
")#@else
{
!!$metager->generateSearchLink('nachrichten')!!
}
@endif"
target
=
"_self"
tabindex
=
"3"
>@
lang
(
'index.foki.nachrichten'
)
</
a
>
</
div
>
@
endif
@
if
(
array_has
(
$metager
->
getAvailableFoki
(),
"wissenschaft"
))
<
div
id
=
"wissenschaft"
@
if
(
$metager
->
getFokus
()
===
"wissenschaft"
)
class
=
"active"
@
endif
>
<
a
href
=
"@if(
$metager->getFokus
() === "
wissenschaft
")#@else
{
!!$metager->generateSearchLink('wissenschaft')!!
}
@endif"
target
=
"_self"
tabindex
=
"4"
>@
lang
(
'index.foki.wissenschaft'
)
</
a
>
</
div
>
@
endif
@
if
(
array_has
(
$metager
->
getAvailableFoki
(),
"produktsuche"
))
<
div
id
=
"produkte"
@
if
(
$metager
->
getFokus
()
===
"produktsuche"
)
class
=
"active"
@
endif
>
<
a
href
=
"@if(
$metager->getFokus
() === "
produktsuche
")#@else
{
!!$metager->generateSearchLink('produktsuche')!!
}
@endif"
target
=
"_self"
tabindex
=
"5"
>@
lang
(
'index.foki.produkte'
)
</
a
>
</
div
>
@
endif
<
div
id
=
"maps"
>
<
a
href
=
"https://maps.metager.de/map/{{
$metager->getQ
() }}/9.7380161,52.37119740000003,12"
target
=
"_self"
tabindex
=
"6"
>@
lang
(
'index.foki.maps'
)
</
a
>
</
div
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment