Skip to content

Commit

Permalink
#4, #5, #6: using Pueppeteer and SERPAPI
Browse files Browse the repository at this point in the history
  • Loading branch information
hamzamu committed Nov 30, 2019
1 parent 4d76092 commit e7f2866
Show file tree
Hide file tree
Showing 8 changed files with 217 additions and 77 deletions.
2 changes: 1 addition & 1 deletion .meteor/packages
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ ecmascript@0.13.0 # Enable ECMAScript2015+ syntax in app code
shell-server@0.4.0 # Server-side component of the `meteor shell` command

insecure@1.0.7 # Allow all DB writes from clients (for prototyping)
hamzamu:settings
session
hamzamu:settings
10 changes: 5 additions & 5 deletions .meteor/versions
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
allow-deny@1.1.0
autoupdate@1.6.0
babel-compiler@7.4.0
babel-compiler@7.4.1
babel-runtime@1.4.0
base64@1.0.12
binary-heap@1.0.11
Expand All @@ -19,15 +19,15 @@ ddp-server@2.3.0
deps@1.0.12
diff-sequence@1.1.1
dynamic-import@0.5.1
ecmascript@0.13.0
ecmascript@0.13.1
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.9.0
ecmascript-runtime-server@0.8.0
ejson@1.1.0
es5-shim@4.8.0
fetch@0.1.1
geojson-utils@1.0.10
hamzamu:settings@0.0.10
hamzamu:settings@0.0.14
hot-code-push@1.0.4
html-tools@1.0.11
htmljs@1.0.11
Expand All @@ -41,7 +41,7 @@ logging@1.1.20
meteor@1.9.3
meteor-base@1.4.0
minifier-css@1.4.3
minifier-js@2.5.0
minifier-js@2.5.1
minimongo@1.4.5
mobile-experience@1.0.5
mobile-status-bar@1.0.14
Expand All @@ -68,7 +68,7 @@ socket-stream-client@0.2.2
spacebars@1.0.15
spacebars-compiler@1.1.3
standard-minifier-css@1.5.4
standard-minifier-js@2.5.0
standard-minifier-js@2.5.2
templating@1.3.2
templating-compiler@1.3.3
templating-runtime@1.3.2
Expand Down
23 changes: 20 additions & 3 deletions client/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,13 @@ Template.socialHealth.onCreated(function () {
// counter starts at 0

Tracker.autorun(function(){
// var operation = Session.get('operationId')
var operation = App.getSetting('operationId')
log(operation)
// if(!operation){
// return
// }
Meteor.subscribe('results',operation)
log(Results.find().fetch())
})

});
Expand All @@ -27,14 +31,19 @@ Template.socialHealth.events({
event.preventDefault()



var isChecked = $('#isAPI').checked
// App.setSetting:
// log(isChecked)
var searchEle = {
name: $('#name').val(),
surname: $('#surname').val(),
fullname: $('#name').val() + ' ' + $('#surname').val(),
keywords: $('#keywords').val()
keywords: $('#keywords').val(),
isAPI: App.getSetting('isAPI')
}

log(searchEle)

if(!searchEle.name || !searchEle.surname){
alert('Search keywords are missing')
return
Expand All @@ -43,10 +52,18 @@ Template.socialHealth.events({
console.log(err,results)
if(results){
App.setSetting({operationId: results})
Session.set({operationId: results})
}
})

},
'click #isAPI'(e){
var isAPI = $(e.currentTarget).is(":checked")
log('checked',isAPI)
// if(isChecked){
App.setSetting({isAPI:isAPI})
// }
}
});


Expand Down
28 changes: 20 additions & 8 deletions client/search.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,20 @@ <h1 class="title">Social Health Search</h1>
Search
</button>
</p>



</form>
</div>
<!-- -->
<div class="column is-12">
<p class="control">
<label class="checkbox">
<input type="checkbox" id="isAPI" name="isAPI" val="isAPI:true">
USE API
</label>
</p>
</div>
</div>

<hr />
Expand All @@ -40,29 +52,29 @@ <h1 class="title">Social Health Search</h1>
<div class="columns is-multiline">
<div class="column is-6">
<h3 class="subtitle is-4">Results</h3>
<hr/>
<hr />
{{#each results}}

<p>
{{keyword}} <br/>
<a href="{{link}}" target="_blank">{{title}}</a> <br/>
{{keyword}} <br />
<a href="{{link}}" target="_blank">{{title}}</a> <br />
<small>{{link}}</small>
</p>
<br/>
<br />
{{/each}}

</div>
<div class="column is-6">
<h3 class="subtitle is-4">Console</h3>
<hr/>
<hr />

<pre>
{{resultsJSON}}
</pre>

<!-- <textarea class="textarea" rows="20"> -->

<!-- </textarea> -->
<!-- </textarea> -->
</div>
</div>

Expand Down
73 changes: 39 additions & 34 deletions server/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,54 +8,59 @@ import './utili/lib.js'
log = console.log;
import './search.google.js'
log('-----------Social Health-------------')

/**
* Metehor Methods
*/
Meteor.methods({
search(obj){
var item;
// Dropped
var keywordsArr = getKeywords(obj.keywords)
obj.queries = queryCreate(obj.fullname , obj.keywords)
log(obj)
// Insert in DB
// return
search(obj) {
// var keywordsArr = getKeywords(obj.keywords)
obj.queries = queryCreate(obj.fullname, obj.keywords)
var itemId = Items.insert(obj)
searchItem(itemId,obj.queries)
log('search method: ',obj,itemId)
if(obj.isAPI){
log('===== USING API =====')
searchItem(itemId,obj.queries)
}else{
log('===== USING Puppeteer =====')
searchPuppeteer(itemId, obj.queries)
}
log('Searchi Method: Init', itemId)
return itemId;
}
})
/**
*
* Publish
*/
Meteor.publish('results',function(id){
return Results.find({item:id,valid:true})
})
Meteor.publish('results', function (id) {
var res= Results.find({item:id}).count()
log('Publish: ', id)
return Results.find({
item: id,
valid: true
})
})
/**
*
* @param {*} keywords
*/
function getKeywords(keywords){
function getKeywords(keywords) {
var keywords = keywords.toLowerCase()
var keywords = keywords.replace(/\s/g, '');
var keywords = keywords.split(',');
log('keywords',keywords)
log('keywords', keywords)
return keywords
}
/**
* Query Create
* @param {*} name
* @param {*} keywordsArr
*/
function queryCreate(name,keywordsArr){
function queryCreate(name, keywordsArr) {
var searchKeywords = []
for (var p = 0; p < SH.accounts.length; p++) {
var query = name + " " + keywordsArr + " " + SH.keyword[p]
var query = {
keyword : SH.accounts[p],
keyword: SH.accounts[p],
query: query,
}
searchKeywords.push(query)
Expand All @@ -71,28 +76,28 @@ function queryCreate(name,keywordsArr){
*
* @param {*} id
*/
function searchItem(itemId,queries){
function searchItem(itemId, queries) {
// Loop every Query => for Social Media Links
_.each(queries,(query)=>{
log('searching',query.query)
Search.search(itemId,query)
_.each(queries, (query) => {
log('searching', query.query)
Search.search(itemId, query)
})
}
/**
*
* @param {*} id
* @param {*} result
*/
function searchItemUpdate(id,key,result){
}


/**
}
/**
*
* @param {*} id
* @param {*} result
*/
function searchPuppeteer(itemId, queries) {
log('search q', queries)
Search.puppeteer(itemId, queries)
}
/**
* Import CSV Files
*
*/
var data = App.importCSV('csv_input_socialhealth.csv')
/**
* Insert Data
*/
App.insertItemsBatch(data)
App.insertItemsBatch(data)
Loading

0 comments on commit e7f2866

Please sign in to comment.