Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
humanities
gargantext
Commits
6b2cbdd1
Commit
6b2cbdd1
authored
Apr 15, 2015
by
PkSM3
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[UPDATE] explorer view, good version, do not merge yet
parent
b830295e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
99 additions
and
55 deletions
+99
-55
corpustools.py
parsing/corpustools.py
+1
-0
views.py
scrap_pubmed/views.py
+84
-50
project.html
templates/project.html
+14
-5
No files found.
parsing/corpustools.py
View file @
6b2cbdd1
...
@@ -33,6 +33,7 @@ class Parsers(defaultdict):
...
@@ -33,6 +33,7 @@ class Parsers(defaultdict):
_parsers
=
{
_parsers
=
{
'pubmed'
:
PubmedFileParser
,
'pubmed'
:
PubmedFileParser
,
'istex'
:
ISText
,
'isi'
:
IsiFileParser
,
'isi'
:
IsiFileParser
,
'ris'
:
RisFileParser
,
'ris'
:
RisFileParser
,
'europress'
:
EuropressFileParser
,
'europress'
:
EuropressFileParser
,
...
...
scrap_pubmed/views.py
View file @
6b2cbdd1
...
@@ -187,7 +187,31 @@ def testISTEX(request , project_id):
...
@@ -187,7 +187,31 @@ def testISTEX(request , project_id):
print
(
request
.
method
)
print
(
request
.
method
)
alist
=
[
"bar"
,
"foo"
]
alist
=
[
"bar"
,
"foo"
]
# SQLAlchemy session
session
=
Session
()
# do we have a valid project id?
try
:
project_id
=
int
(
project_id
)
except
ValueError
:
raise
Http404
()
# do we have a valid project?
project
=
(
session
.
query
(
Node
)
.
filter
(
Node
.
id
==
project_id
)
.
filter
(
Node
.
type_id
==
cache
.
NodeType
[
'Project'
]
.
id
)
)
.
first
()
if
project
is
None
:
raise
Http404
()
# do we have a valid user?
user
=
request
.
user
if
not
user
.
is_authenticated
():
return
redirect
(
'/login/?next=
%
s'
%
request
.
path
)
if
project
.
user_id
!=
user
.
id
:
return
HttpResponseForbidden
()
if
request
.
method
==
"POST"
:
if
request
.
method
==
"POST"
:
# print(alist)
# print(alist)
...
@@ -196,63 +220,73 @@ def testISTEX(request , project_id):
...
@@ -196,63 +220,73 @@ def testISTEX(request , project_id):
N
=
60
N
=
60
if
"query"
in
request
.
POST
:
query
=
request
.
POST
[
"query"
]
if
"query"
in
request
.
POST
:
query
=
request
.
POST
[
"query"
]
if
"string"
in
request
.
POST
:
query_string
=
request
.
POST
[
"string"
]
.
replace
(
" "
,
"+"
)
if
"string"
in
request
.
POST
:
query_string
=
request
.
POST
[
"string"
]
.
replace
(
" "
,
"+"
)
# if "N" in request.POST: N = request.POST["N"]
if
"N"
in
request
.
POST
:
N
=
int
(
request
.
POST
[
"N"
])
print
(
query_string
,
query
,
N
)
print
(
query_string
,
query
,
N
)
#
urlreqs = []
urlreqs
=
[]
# pagesize = 5
0
pagesize
=
50
0
#
tasks = MedlineFetcher()
tasks
=
MedlineFetcher
()
#
chunks = list(tasks.chunks(range(N), pagesize))
chunks
=
list
(
tasks
.
chunks
(
range
(
N
),
pagesize
))
#
for k in chunks:
for
k
in
chunks
:
#
if (k[0]+pagesize)>N: pagesize = N-k[0]
if
(
k
[
0
]
+
pagesize
)
>
N
:
pagesize
=
N
-
k
[
0
]
#
urlreqs.append("http://api.istex.fr/document/?q="+query_string+"&output=*&"+"from="+str(k[0])+"&size="+str(pagesize))
urlreqs
.
append
(
"http://api.istex.fr/document/?q="
+
query_string
+
"&output=*&"
+
"from="
+
str
(
k
[
0
])
+
"&size="
+
str
(
pagesize
))
#
print(urlreqs)
print
(
urlreqs
)
# urlreqs = ["http://localhost/374255" , "http://localhost/374278" ]
# urlreqs = ["http://localhost/374255" , "http://localhost/374278" ]
# print(urlreqs)
# print(urlreqs)
# resource_type = ResourceType.objects.get(name="istext" )
resourcetype
=
cache
.
ResourceType
[
"istex"
]
print
(
resourcetype
)
# parent = Node.objects.get(id=project_id)
# corpus node instanciation as a Django model
# node_type = NodeType.objects.get(name='Corpus')
corpus
=
Node
(
# type_id = NodeType.objects.get(name='Document').id
name
=
query
,
# user_id = User.objects.get( username=request.user ).id
user_id
=
request
.
user
.
id
,
parent_id
=
project_id
,
# corpus = Node(
type_id
=
cache
.
NodeType
[
'Corpus'
]
.
id
,
# user=request.user,
language_id
=
None
,
# parent=parent,
)
# type=node_type,
session
.
add
(
corpus
)
# name=query,
session
.
commit
()
# )
tasks
=
MedlineFetcher
()
# corpus.save()
for
i
in
range
(
8
):
t
=
threading
.
Thread
(
target
=
tasks
.
worker2
)
#thing to do
# # configuring your queue with the event
t
.
daemon
=
True
# thread dies when main thread (only non-daemon thread) exits.
# for i in range(8):
t
.
start
()
# t = threading.Thread(target=tasks.worker2) #thing to do
for
url
in
urlreqs
:
# t.daemon = True # thread dies when main thread (only non-daemon thread) exits.
filename
=
MEDIA_ROOT
+
'/corpora/
%
s/
%
s'
%
(
request
.
user
,
str
(
datetime
.
datetime
.
now
()
.
isoformat
()))
# t.start()
tasks
.
q
.
put
(
[
url
,
filename
])
#put a task in th queue
# for url in urlreqs:
tasks
.
q
.
join
()
# wait until everything is finished
# filename = MEDIA_ROOT + '/corpora/%s/%s' % (request.user, str(datetime.now().microsecond))
# tasks.q.put( [url , filename]) #put a task in th queue
dwnldsOK
=
0
# tasks.q.join() # wait until everything is finished
for
filename
in
tasks
.
firstResults
:
# for filename in tasks.firstResults:
if
filename
!=
False
:
# corpus.add_resource( user=request.user, type=resource_type, file=filename )
print
(
filename
)
# add the uploaded resource to the corpus
add_resource
(
corpus
,
# corpus.save()
user_id
=
request
.
user
.
id
,
# print("DEBUG:",DEBUG)
type_id
=
resourcetype
.
id
,
# # do the WorkFlow
file
=
filename
,
# try:
)
# if DEBUG is True:
dwnldsOK
+=
1
# corpus.workflow()
# else:
if
dwnldsOK
==
0
:
return
JsonHttpResponse
([
"fail"
])
# corpus.workflow.apply_async((), countdown=3)
try
:
# return JsonHttpResponse(["workflow","finished"])
def
apply_workflow
(
corpus
):
# except Exception as error:
parse_resources
(
corpus
)
# print(error)
extract_ngrams
(
corpus
,
[
'title'
])
compute_tfidf
(
corpus
)
if
DEBUG
:
apply_workflow
(
corpus
)
else
:
thread
=
threading
.
Thread
(
target
=
apply_workflow
,
args
=
(
corpus
,
),
daemon
=
True
)
thread
.
start
()
except
Exception
as
error
:
print
(
'WORKFLOW ERROR'
)
print
(
error
)
return
HttpResponseRedirect
(
'/project/'
+
str
(
project_id
))
data
=
[
query_string
,
query
,
N
]
data
=
[
query_string
,
query
,
N
]
return
JsonHttpResponse
(
data
)
return
JsonHttpResponse
(
data
)
...
...
templates/project.html
View file @
6b2cbdd1
...
@@ -276,10 +276,15 @@
...
@@ -276,10 +276,15 @@
function
bringDaNoise
()
{
function
bringDaNoise
()
{
var
theresults
=
$
(
"#theresults"
).
html
()
var
theresults
=
$
(
"#theresults"
).
html
()
if
(
theresults
&&
theresults
.
search
(
"No results"
)
==-
1
)
{
if
(
theresults
&&
theresults
.
search
(
"No results"
)
==-
1
)
{
var
origQuery
=
$
(
"#id_name"
).
val
()
console
.
log
(
"we've in dynamic mode"
)
console
.
log
(
"we've in dynamic mode"
)
$
(
"#simpleloader"
).
html
(
'<img width="30px" src="{% static "js/libs/img2/loading-bar.gif" %}"></img>'
)
$
(
"#simpleloader"
).
html
(
'<img width="30px" src="{% static "js/libs/img2/loading-bar.gif" %}"></img>'
)
$
(
"#submit_thing"
).
prop
(
'onclick'
,
null
);
$
(
"#submit_thing"
).
prop
(
'onclick'
,
null
);
doTheQuery
();
var
theType
=
$
(
"#id_type option:selected"
).
html
();
if
(
theType
==
"pubmed"
)
doTheQuery
();
if
(
theType
==
"istex"
)
{
testISTEX
(
origQuery
.
replace
(
" "
,
"+"
),
1000
)
}
}
}
else
{
else
{
console
.
log
(
"we dont have nothing inside results div"
)
console
.
log
(
"we dont have nothing inside results div"
)
...
@@ -301,6 +306,8 @@
...
@@ -301,6 +306,8 @@
function
getGlobalResults
(
value
){
function
getGlobalResults
(
value
){
console
.
log
(
"in getGlobalResults()"
)
console
.
log
(
"in getGlobalResults()"
)
console
.
log
(
"value:"
)
console
.
log
(
value
)
// AJAX to django
// AJAX to django
var
pubmedquery
=
$
(
"#id_name"
).
val
()
var
pubmedquery
=
$
(
"#id_name"
).
val
()
var
Npubs
=
$
(
"#id_N"
).
val
();
var
Npubs
=
$
(
"#id_N"
).
val
();
...
@@ -311,6 +318,8 @@
...
@@ -311,6 +318,8 @@
$
(
"#"
+
value
.
id
).
prop
(
'onclick'
,
null
);
$
(
"#"
+
value
.
id
).
prop
(
'onclick'
,
null
);
var
theType
=
$
(
"#id_type option:selected"
).
html
();
var
theType
=
$
(
"#id_type option:selected"
).
html
();
console
.
log
(
"theType:"
)
console
.
log
(
theType
)
if
(
theType
==
"pubmed"
)
{
if
(
theType
==
"pubmed"
)
{
$
.
ajax
({
$
.
ajax
({
...
@@ -348,7 +357,7 @@
...
@@ -348,7 +357,7 @@
});
});
}
}
if
(
theType
==
"istex
t
"
)
{
if
(
theType
==
"istex"
)
{
console
.
log
(
window
.
location
.
origin
+
"tests/istextquery"
)
console
.
log
(
window
.
location
.
origin
+
"tests/istextquery"
)
$
.
ajax
({
$
.
ajax
({
// contentType: "application/json",
// contentType: "application/json",
...
@@ -424,7 +433,7 @@
...
@@ -424,7 +433,7 @@
//CSS events for changing the Select element
//CSS events for changing the Select element
function
CustomForSelect
(
selected
)
{
function
CustomForSelect
(
selected
)
{
// show Radio-Inputs and trigger FileOrNotFile>@upload-file events
// show Radio-Inputs and trigger FileOrNotFile>@upload-file events
if
(
selected
==
"pubmed"
||
selected
==
"istex
t
"
)
{
if
(
selected
==
"pubmed"
||
selected
==
"istex"
)
{
// if(selected=="pubmed") {
// if(selected=="pubmed") {
console
.
log
(
"show the button for: "
+
selected
)
console
.
log
(
"show the button for: "
+
selected
)
$
(
"#pubmedcrawl"
).
css
(
"visibility"
,
"visible"
);
$
(
"#pubmedcrawl"
).
css
(
"visibility"
,
"visible"
);
...
@@ -475,7 +484,7 @@
...
@@ -475,7 +484,7 @@
var
origQuery
=
query
var
origQuery
=
query
var
pubmedifiedQuery
=
{
query
:
query
,
string
:
query
}
var
pubmedifiedQuery
=
{
query
:
query
,
string
:
query
,
N
:
Npubs
}
// console.log(pubmedifiedQuery)
// console.log(pubmedifiedQuery)
var
projectid
=
window
.
location
.
href
.
split
(
"project"
)[
1
].
replace
(
/
\/
/g
,
''
)
//replace all the slashes
var
projectid
=
window
.
location
.
href
.
split
(
"project"
)[
1
].
replace
(
/
\/
/g
,
''
)
//replace all the slashes
...
@@ -491,7 +500,7 @@
...
@@ -491,7 +500,7 @@
success
:
function
(
data
)
{
success
:
function
(
data
)
{
console
.
log
(
"ajax_success: in testISTEX()"
)
console
.
log
(
"ajax_success: in testISTEX()"
)
console
.
log
(
data
)
console
.
log
(
data
)
//
location.reload();
location
.
reload
();
},
},
error
:
function
(
result
)
{
error
:
function
(
result
)
{
console
.
log
(
"in testISTEX(). Data not found"
);
console
.
log
(
"in testISTEX(). Data not found"
);
...
...
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