Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.atlassian.sal.api.component.ComponentLocator
- import com.atlassian.confluence.pages.CommentManager
- import com.atlassian.confluence.pages.PageManager
- import com.atlassian.confluence.spaces.SpaceManager
- import com.atlassian.confluence.pages.Page
- import com.atlassian.confluence.user.UserAccessor
- import com.atlassian.sal.api.user.UserKey
- import com.atlassian.sal.api.user.UserManager
- import com.atlassian.confluence.core.DefaultSaveContext
- import com.atlassian.confluence.core.SaveContext
- import com.atlassian.confluence.event.events.content.page.PageEvent
- import com.atlassian.applinks.api.ApplicationLinkService
- import com.atlassian.applinks.api.application.jira.JiraApplicationType
- import com.atlassian.sal.api.net.Response
- import com.atlassian.sal.api.net.ResponseException
- import com.atlassian.sal.api.net.ResponseHandler
- import com.onresolve.scriptrunner.runner.customisers.WithPlugin
- import groovy.json.JsonBuilder
- import groovy.json.JsonSlurper
- import org.apache.http.util.EntityUtils
- import org.jsoup.Jsoup
- import org.jsoup.nodes.Document
- import org.jsoup.nodes.Element
- import static com.atlassian.sal.api.net.Request.MethodType.POST
- import org.apache.log4j.Level
- import org.apache.log4j.Logger
- log = Logger.getLogger("com.test.Page")
- log.setLevel(Level.DEBUG)
- def pageManager = ComponentLocator.getComponent(PageManager)
- def entityUtils = ComponentLocator.getComponent(EntityUtils)
- def profile = ComponentLocator.getComponent(UserManager)
- def userAccessor = ComponentLocator.getComponent(UserAccessor)
- def appLinkService = ComponentLocator.getComponent(ApplicationLinkService)
- def appLink = appLinkService.getPrimaryApplicationLink(JiraApplicationType)
- def applicationLinkRequestFactory = appLink.createAuthenticatedRequestFactory()
- def page = pageManager.getPage('OP','2019-10-09 Meeting notes')
- def text_page = page.getBodyAsString()
- // ==================
- def doc = Jsoup.parse(text_page)
- ArrayList<String> subAss = new ArrayList<>();
- def table = doc.select("table").get(1) // Выбираем первую таблицу
- def rows = table.select("tr")
- int e = 0 // соавторы
- int j = 0 // авторы
- int w = 0 // дата
- def q
- def t
- def dateNew
- for (int i = 1; i < rows.size(); i++) {
- def row = rows.get(i)
- def cols = row.select("td")
- def summary = cols.get(1).text()
- def description = cols.get(2).text()
- def subAssignee = cols.get(4).select('ac|link')
- //log.debug(subAssignee.size())
- for( int r = 0; r < subAssignee.size(); r++){
- if(subAssignee.size() != 0){
- def user = subAssignee[e].select('ri|user').attr('ri:userkey')
- e = e + 1
- q = userAccessor.getUserByKey(new UserKey(user))
- subAss.add(q.name)
- log.debug(subAss)
- } else {}
- }
- def assignee = cols.get(3).select('ac|link')
- //log.debug(assignee)
- for (int y = 0; y < assignee.size(); y++){
- if(assignee.size() != 0){
- def user = assignee.select('ri|user').attr('ri:userkey')
- //j = j + 1
- t = userAccessor.getUserByKey(new UserKey(user))
- //log.debug(t.name)
- } else {}
- }
- def date = cols.get(6).select('time')
- //log.debug(date)
- for(int u = 0; u < date.size(); u++){
- if (date.size() != 0 ){
- //def dat = cols.select('time')
- dateNew = date.attr('datetime')
- //w = w + 1
- //log.debug(dateNew)
- } else {}
- }
- //}
- //==========================
- //==============================================
- def body = new JsonBuilder([
- fields: [
- project : [key: "QQ"],
- issuetype : [name: "Техническая консультация"],
- summary : summary,//result[ i+1],
- description: description,//result[i+2],
- reporter : [name: "bazhenov_av"],//[name: "jira"],
- assignee : [name: t.name],
- //priority : [result[i+4]],
- customfield_11801 : dateNew //result[i+5] //select('time').attr('datetime')
- //customfield_12007 : [name: subAss]
- ]
- ]).toString()
- def request = applicationLinkRequestFactory.createRequest(POST, "/rest/api/2/issue")
- .addHeader("Content-Type", "application/json")
- .setEntity(body)
- request.execute(new ResponseHandler<Response>() {
- @Override
- void handle(Response response) throws ResponseException {
- if (response.statusCode != 201) {
- log.error("Creating Jira issue failed: ${response.responseBodyAsString}")
- }
- def issueData = (new JsonSlurper()).parseText(response.getResponseBodyAsString())
- def linkWiki = new JsonBuilder([
- globalId: "appId=5aac7244-e0d3-31df-a7f5-d93dce867807&pageId=10748184",
- application: [type: "com.atlassian.confluence"],
- relationship:"Wiki Page",
- object: [
- url:"http://confluence-test-app.sands.local/pages/viewpage.action?pageId=10748184",
- title:"Wiki Page",
- ]
- ]).toString()
- def linkW = applicationLinkRequestFactory.createRequest(POST, "/rest/api/2/issue/${issueData.key}/remotelink")
- .addHeader("Content-Type", "application/json")
- .setEntity(linkWiki)
- //==============================
- linkW.execute(new ResponseHandler<Response>() {
- @Override
- void handle(Response responseLink) throws ResponseException {
- if (responseLink.statusCode != 201) {
- log.error("Creating Link failed: ${responseLink.responseBodyAsString}")
- }
- }
- })
- }
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement